Python Logging - 将日期设置为文件名
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
时,一切都正常工作,所以这似乎是我遇到的唯一错误。