Home >Backend Development >Python Tutorial >Python logging module: expert-level tutorials, from beginner to proficient
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).
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")
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("发生错误!")
The logging module defines the following log levels (from lowest to highest):
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
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")
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)
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)
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.
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.
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.
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!