Home  >  Article  >  Backend Development  >  Python logging module: expert-level tutorials, from beginner to proficient

Python logging module: expert-level tutorials, from beginner to proficient

WBOY
WBOYforward
2024-03-08 08:34:02330browse

Python logging 模块:专家级教程,从入门到精通

Introduction

The

logging module is the standard library for logging recording in python. It provides a unified interface for logging events in applications and allows developers to define fine-grained control of log levels, format log messages, and output logs to various targets (e.g., files, control Taiwan or Network socket).

getting Started

Create a Logger

To start logging, you first need to create a logger object. A logger can be created through the logging.getLogger(name) function, where name is an identifier string used to identify the logger.

import logging

# 创建一个名为 "my_logger" 的 logger
logger = logging.getLogger("my_logger")

Record log messages

You can use the logger.log(level, msg, *args, **kwargs) method to record log messages, where:

  • level: The level of the log message.
  • msg: Log message.
  • *args and **kwargs: Optional parameters used to format log messages.
logger.info("程序已启动")
logger.error("发生错误!")

Log level

The logging module defines the following log levels (from lowest to highest):

  • DEBUG: Detailed information for debugging purposes.
  • INFO: For general application messages.
  • WARNING: Used to draw attention to a problem.
  • ERROR: for errors and exceptions.
  • CRITICAL: For critical errors or application crashes.
  • NOTSET: Disable logging.

The log level can be set to the logger.level property. For example, to set the level of my_logger to WARNING, you would use:

logger.level = logging.WARNING

Formatter

Formatters are used to control the appearance of log messages. Formatters can be created via the logging.F<strong class="keylink">ORM</strong>atter class, which has the following parameters:

  • fmt: The format string of the log message.
  • datefmt: Format string for date and time (optional).
# 创建一个格式化器,包含时间戳、日志级别和日志消息
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")

processor

The processor is used to output log messages to a specific destination. The logging module provides some handlers out of the box, for example:

  • logging.StreamHandler: Output log messages to the console.
  • logging.FileHandler: Output log messages to a file.
  • logging.<strong class="keylink">Socket</strong>Handler: Output log messages to a network socket.
# 创建一个处理器,将日志消息输出到控制台
handler = logging.StreamHandler()

# 将格式化器添加到处理器
handler.setFormatter(formatter)

# 将处理器添加到 logger
logger.addHandler(handler)

filter

Filters are used to filter log messages based on specific conditions. The logging module provides the following filters:

  • logging.Filter: Basic filter, allow or deny log messages.
  • logging.LevelFilter: Filter log messages based on log level.
  • logging.MessageFilter: Filter log messages based on the log message itself.
# 创建一个过滤器,仅允许 INFO 和 WARNING 级别的日志消息
filter = logging.LevelFilter(logging.INFO)

# 将过滤器添加到处理器
handler.addFilter(filter)

Advanced Usage

Hierarchical logging

Python The logging module supports hierarchical logging, where a logger can inherit the properties and behavior of its parent logger. This allows building a logging structure with different levels of logging granularity.

Custom logging level

It is also possible to create custom logging levels to better suit the specific needs of your application. This can be achieved through the logging.addLevelName(level_name, level_value) function.

Extended Logging module

The logging module can be extended with custom classes and functions to implement more advanced or specific logging functionality. For example, you can create your own processors or filters to meet specific requirements.

in conclusion

The

Python logging module is a powerful tool for logging in applications. It provides flexibility and customizability, allowing developers to build logging systems based on the specific needs of their applications. By following the basic principles and advanced techniques outlined in this tutorial, you can get the most out of the logging module and achieve efficient and informative logging for your applications.

The above is the detailed content of Python logging module: expert-level tutorials, from beginner to proficient. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:lsjlt.com. If there is any infringement, please contact admin@php.cn delete