Python Logging - 将日期设置为文件名

6 浏览
0 Comments

Python Logging - 将日期设置为文件名

我正在实施Python项目中的日志记录,并遇到了一点困难。我试图设置我的日志记录,使得处理程序和格式化程序都组织在一个配置文件中。我目前正在尝试设置我的fileHandler,使其创建一个类似于YYYY_MM_DD.log的日志文件,其中Y表示年份,M表示月份,D表示日期。

这是我在配置文件中尝试的内容:

[loggers]

keys=root,MainLogger

[handlers]

keys=fileHandler, consoleHandler

[formatters]

keys=logFormatter, consoleFormatter

[logger_root]

level=DEBUG

handlers=fileHandler

[logger_MainLogger]

level=DEBUG

handlers=fileHandler, consoleHandler

qualname=MainLogger

propagate=0

[handler_consoleHandler]

class=StreamHandler

level=DEBUG

formatter=consoleFormatter

args=(sys.stdout,)

[handler_fileHandler]

class=FileHandler

level=DEBUG

formatter=logFormatter

args=(datetime.now().strftime('%Y_%m_%d.log'), 'a')

[formatter_logFormatter]

format=%(asctime)s | %(levelname)-8s | %(lineno)04d | %(message)s

[formatter_consoleFormatter]

format=%(asctime)s | %(levelname)-8s | %(fillname)s-%(funcName)s-%(lineno)04d | %message)s

我用来测试配置的文件非常简单:

import logging
import logging.config
logging.config.fileConfig('logging.conf')
logger = logging.getLogger('MainLogger')
logger.debug("TEST")

我目前遇到的具体错误是:

configparser.InterpolationSyntaxError: '%'必须后跟'%'或'(',找到:"%Y_%m_%d.log'), 'a')"

我尝试根据错误提示更改%Y%m%d,但问题没有得到解决。如何设置配置文件,使得我的日志文件看起来符合我的要求?

我应该注意到,当我将文件名更改为test.log时,一切都正常工作,所以这似乎是我遇到的唯一错误。

0