Python的logging模块提供了一种灵活可配置的日志记录系统,可用于监测程序运行时的信息,方便开发者进行故障排查和性能优化。
下面的代码配置了一个简单的日志记录器,通过logging库记录程序运行日志,其中,logging库包含了五种日志级别,并按照一定格式 format
将日志信息保存到指定文件中 example.log
,我们逐一展开介绍日志的这些内容。
# 配置日志记录器
logging.basicConfig(filename='example.log',
level=logging.INFO,
format='%(asctime)s [%(levelname)s]: %(message)s')
# 记录不同级别的日志
logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')
logging 库允许通过配置文件或编程方式配置日志记录系统,以适应不同的应用场景,配置日志记录器通过 logging.basicConfig()
进行,这里仅介绍简单基础的配置参数(如下所示),更多的配置参数及功能可以自行探索。
如果没有指定该参数,则记录器默认会将日志输出打印到控制台。
当指定了该参数后,会将日志保存到相应路径的文件内,并可以通过filemode: str
指定文件打开模式,若无指定模式,则默认为追加模式 a
(有同名文件则追加新日志,无则新建)。
指定日志消息的字符串格式。
例如上面的代码例子:format='%(asctime)s [%(levelname)s]: %(message)s'
,其中 '%(asctime)s'
表示日志记录的时间,%()s
表示将asctime
插入到括号中并格式化为字符串,'%(levelname)s'
表示日志级别,'%(message)s'
表示日志消息的内容,具体的字符串格式可以根据需求进行定制。
指定一个日志级别,只有达到该级别或更高级别的日志消息才会被记录,以此来控制日志的详细程度。
例如:设置了 level=logging.WARNING
,则只会记录 WARNING、ERROR、CRITICAL级别的日志,而忽略 DEBUG、INFO 级别的日志。
将日志消息输出到流,该参数与 filename
参数相冲突,若同时设置了两个相冲突的参数,则 stream
参数自动被忽略。
logging 模块定义了五种日志级别,包括 DEBUG、INFO、WARNING、ERROR 和 CRITICAL。日志级别用于指示日志消息的严重程度,在配置日志记录器时,可以有选择地控制输出的详细程度。
不同日志级别的差异:
如上面的代码例子所示,通过调用 logging.debug、logging.info、logging.warning、logging.error、logging.critical
可以记录不同级别的日志消息。这些消息将根据记录器的配置被写入到文件 ‘example.log’ 中。