python记录时间日志_Python日志记录 - 将日期设置为文件名

在Python项目中实施日志记录时,作者试图将日志文件名设置为当前日期格式(YYYY_MM_DD.log)。通过配置文件设置FileHandler时遇到问题,导致配置错误:configparser.InterpolationSyntaxError。尝试使用'datetime.now().strftime('%Y_%m_%d.log')'作为参数,但引发了错误。解决方案是在脚本中导入datetime模块,并使用'datetime.datetime.now()'来正确生成日期格式的日志文件名。
摘要由CSDN通过智能技术生成

我正在实施我的Python项目中的日志记录,并且遇到了一些障碍。我正在尝试设置日志记录,以便将处理程序和格式化程序全部组织到配置文件中。我现在想要做的是设置我的fileHandler,这样它会创建一个类似如下的日志文件:YYYY_MM_DD.log显然,Y代表年份,M代表月份,D代表当天。Python日志记录 - 将日期设置为文件名

这就是我试图用我的配置文件:

[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: '%' must be followed by '%' or '(', found: "%Y_%m_%d.log'), 'a')"

我试过改变%Y,%m和%d,正如错误所述,但这并不能解决问题。我如何去设置配置文件,以便我的日志文件看起来像我想要的那样?

我应该注意,当我改变文件名为test.log一切正常,所以这是我似乎与此唯一的错误。

+0

你怎么导入日期时间?这可能是由于使用'datetime.now()'而不是'datetime.datetime.now()'的常见错误而导致错误无法正确处理的错误。 –

+0

......我想我没有导入日期时间。虽然我只是改变我的配置文件为'datetime.datetime.now()',仍然有相同的错误。我会将它导入到我的Python脚本中吗? –

+0

是的,尝试在脚本的顶部放置'from datetime import datetime'。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值