Python中LOGINFO的配置文件详解
在Python中,通常使用配置文件来配置日志记录器(logger)的行为。配置文件用于指定日志记录器记录日志的级别、格式、输出位置等。
Python提供了一个标准库模块logging.config,其中包含了一个函数fileConfig,用于从配置文件中读取配置信息并应用到日志记录器。
下面是一个配置文件logging_config.ini的示例:
[loggers]
keys=root,sampleLogger
[handlers]
keys=consoleHandler,fileHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_sampleLogger]
level=DEBUG
handlers=fileHandler
qualname=sampleLogger
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=("app.log",)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=%Y-%m-%d %H:%M:%S
上述配置文件中,分为以下几个部分:
- loggers:指定了所有日志记录器的名称。
- handlers:指定了所有处理器(handler)的名称。
- formatters:指定了所有格式化器(formatter)的名称。
- logger_*:用于指定某个日志记录器的配置,*为记录器的名称。
- handler_*:用于指定某个处理器的配置,*为处理器的名称。
- formatter_*:用于指定某个格式化器的配置,*为格式化器的名称。
其中,root是根日志记录器,sampleLogger是自定义的日志记录器。
配置文件中的每个部分用keys指定了后面各自部分的配置项。例如,[loggers]下的keys为root,sampleLogger,表示该部分有两个配置项root和sampleLogger。
上述配置文件的含义是:
- 根日志记录器(root)的日志级别为DEBUG,并使用consoleHandler处理器进行输出。
- 自定义日志记录器(sampleLogger)的日志级别为DEBUG,并使用fileHandler处理器进行输出。其qualname指定了记录器的名称为sampleLogger,propagate指定该记录器的日志消息不会传递给父记录器。
- consoleHandler处理器是一个StreamHandler,用于向标准输出流输出日志。其日志级别为DEBUG,使用了simplerFormatter格式化器。
- fileHandler处理器是一个FileHandler,用于向文件app.log输出日志。其日志级别为DEBUG,也使用了simplerFormatter格式化器。
- simpleFormatter格式化器的格式为%(asctime)s - %(name)s - %(levelname)s - %(message)s,即时间、记录器名称、日志级别和消息。
下面是使用示例:
import logging.config
# 从配置文件加载配置
logging.config.fileConfig('logging_config.ini')
# 获取根日志记录器
root_logger = logging.getLogger()
# 使用根日志记录器打印日志
root_logger.debug('This is a debug message')
# 获取自定义日志记录器
sample_logger = logging.getLogger('sampleLogger')
# 使用自定义日志记录器打印日志
sample_logger.error('This is an error message')
需要注意两点:
1. 在使用fileConfig函数前需要先导入logging.config模块。
2. 使用自定义日志记录器时,要使用其qualname而不是名称来获取记录器。在上面的示例中,我们使用logging.getLogger('sampleLogger')获取了名为sampleLogger的自定义日志记录器。
以上就是Python中配置日志记录器的配置文件详解及使用示例。
