首页 > 编程语言 > 详细

配置文件方式打印Python程序日志

时间:2021-05-27 22:11:20      阅读:22      评论:0      收藏:0      [点我收藏+]

开发者可以通过三种方式配置日志记录:

  1. 调用配置方法的Python代码显式创建记录器、处理程序和格式化程序。
  2. 创建日志配置文件并使用fileConfig() 函数读取。
  3. 创建配置信息字典并将其传递给dictConfig()函数。

相对第一种,第二种使用配置文件方式更有优势,主要是配置和代码的分离,结构上更清晰,以及非开发者轻松修改日志记录属性的能力。本文将介绍第二种使用配置文件方式记录Python程序日志,将Python程序日志分别打印到控制台和日志文件,日志文件按时间戳滚动迭代,且可以自动删除过期文件。

正文

首先创建配置文件logging.conf,以下是文件内容。这里主要介绍TimedRotatingFileHandler的配置参数args,第一个参数/var/log/demo3/example.log表示日志输出的文件目录,第二个参数d表示以天为单位迭代日志文件,第三个参数1表示每隔1个周期,第二个参数和第三个参数相乘表示每隔几个周期迭代一个日志文件,第四个参数3表示仅保留三个日志文件,超过该值的日志文件会被自动清除。

[loggers]
keys=root

[handlers]
keys=consoleHandler,timedRotatingFileHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=INFO
handlers=consoleHandler,timedRotatingFileHandler

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter
args=(sys.stdout,)

[handler_timedRotatingFileHandler]
class=handlers.TimedRotatingFileHandler
level=INFO
formatter=simpleFormatter
args=(‘/var/log/demo3/example.log‘,‘d‘,1,3)

[formatter_simpleFormatter]
format=%(asctime)s?%(name)s?%(levelname)s?-?%(message)s
datefmt=

编写Python程序,使用fileConfig() 函数读取配置文件,测试打印各种类型的日志。可以看出使用配置文件的方式打印日志,程序结构很清晰。

import?logging.config
logging.config.fileConfig(‘logging.conf‘)

#?create?logger
logger?=?logging.getLogger()

logger.debug(‘debug?message‘)
logger.info(‘info?message‘)
logger.warning(‘warn?message‘)
logger.error(‘error?message‘)
logger.critical(‘critical?message‘)

运行Python程序,控制台和日志文件输出以下内容:

2020-11-03?20:50:49,434?simple_example.py?INFO?-?info?message
2020-11-03?20:50:49,435?simple_example.py?WARNING?-?warn?message
2020-11-03?20:50:49,435?simple_example.py?ERROR?-?error?message
2020-11-03?20:50:49,435?simple_example.py?CRITICAL?-?critical?message

配置文件方式打印Python程序日志

原文:https://blog.51cto.com/u_15190995/2823849

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!