怎么配置logging输出信息时带有时间及当前程序在第几行
要配置logging输出信息时带有时间和当前程序在第几行的信息,可以按照以下步骤进行:
- 导入
logging模块和datetime模块:
import logging
import datetime
- 创建一个logger对象,并设置其日志级别:
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
- 创建一个文件处理器,并设置其日志级别和日志格式:
log_file = 'log.txt'
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s - %(filename)s - Line:%(lineno)d')
file_handler.setFormatter(formatter)
- 添加文件处理器到logger对象中:
logger.addHandler(file_handler)
- 在需要输出日志的地方,使用
logger.debug()、logger.info()等方法输出日志信息:
logger.debug('This is a debug message.')
logger.info('This is an info message.')
这样配置后,每次输出日志信息时,日志文件中的每一行都会显示时间、日志级别、日志信息、当前程序的文件名和行号。
完整的示例代码如下:
import logging
import datetime
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
log_file = 'log.txt'
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s - %(filename)s - Line:%(lineno)d')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.debug('This is a debug message.')
logger.info('This is an info message.')
运行以上代码后,会在当前目录生成一个名为log.txt的日志文件,文件内容类似于:
2022-01-01 12:00:00,000 - DEBUG - This is a debug message. - example.py - Line:10
2022-01-01 12:00:01,000 - INFO - This is an info message. - example.py - Line:11
``
原文地址: http://www.cveoy.top/t/topic/hXEH 著作权归作者所有。请勿转载和采集!