【发布时间】:2015-11-01 22:54:27
【问题描述】:
fh = logging.FileHandler('example.log',delay = True)
fh.setLevel(logging.INFO)
由于延迟为 True,除非记录某些内容,否则永远不会写入文件。 此时,文件中的第一行是第一条记录,它将包含 asctime、levelname 等元素
使用 python 2.7.10,是否有一种理智的方法可以在第一次写入不包含这些元素的记录时添加一行(或两行)?
我可以在使用它进行日志记录之前写入文件,但如果我这样做,我最终会得到空的日志,但对于标题。
所需的输出可能如下所示:
Using test.fil with option 7
2015-11-01 13:57:58,045 :log_example: INFO fn:main result:process 4 complete --7 knights said ni
2015-11-01 13:57:58,045 :log_example: INFO fn:main result:process 3 complete --3 bunnies attacked
谢谢,
【问题讨论】:
-
我的想法立即转向了对 logging.Formatter 进行子类化,并在写入第一条消息后让 Formatter 本质上改变其格式。至少如果您正在寻找想法,我会从这里开始。