每次运行时更改日志文件名

时间:2019-08-09 01:15:21

标签: python logging

我有以下python日志记录配置文件,

[loggers]
keys=root,paramiko

[handlers]
keys=consoleHandler,fileHandler

[formatters]
keys=consoleFormatter,fileFormatter

[logger_paramiko]
level=CRITICAL
handlers=consoleHandler,fileHandler
qualname=paramiko

[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler

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

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=('run.log', 'w')

[formatter_consoleFormatter]
format=[%(asctime)s - %(levelname)s] %(message)s

[formatter_fileFormatter]
format=[%(asctime)s - %(pathname)s:%(lineno)s - %(levelname)s] %(message)s

如您所见,我正在登录控制台和文件。该文件的名称为run.log。我希望能够在文件名后附加/添加时间戳,即将日志文件命名为2019-08-08__18:13:40-run.log。我在网上搜索,但找不到任何内容。如何通过配置文件完成此操作?

1 个答案:

答案 0 :(得分:0)

python从配置中读取args键的方式是通过eval()运行它,以便您可以在其中放置任何有效的代码。您可以在这里放置几乎任何想要的东西,每次运行很可能会有所不同的是:

args=(str(time.time())+'.log', 'w') # needs import time in the code
args=(str(hash(' '))+'.log', 'w') # works without import, 99% chance to be unique