![](/img/trans.png)
[英]how to add filter in python logging config file (logging.conf)
[英]How to change TimedRotatingFileHandler to mode 'w' in logging.conf file
我有一个logging.conf
文件,其中包含以下内容:
[loggers]
keys=root
[logger_root]
level=INFO
handlers=file
[formatters]
keys=simple
[formatter_simple]
format=[%(levelname)s] %(asctime)s : %(name)s - %(message)s
datefmt=%H:%M:%s
[handlers]
keys=file
[handler_file]
class=handlers.TimedRotatingFileHandler
interval=midnight
backupCount=5
formatter=simple
level=INFO
args=(log_directory,)
我想在每次运行代码时删除旧日志,因此我想将mode
设置为w
但是我不知道该怎么做。
[handler_file]
...
kwargs={'mode': 'w'}
似乎不起作用(记录器仍然附加日志而不是覆盖现有的日志文件)。
mode
不是TimeRotatingFileHandler
的有效参数:
class logging.handlers.TimedRotatingFileHandler(filename, when='h', interval=1, backupCount=0, encoding=None, delay=False, utc=False)
因此,它默认将日志附加到现有日志文件。 您可以使用RotatingFileHandler
并在args
中将mode
设置为w
:
[handler_file]
class=handlers.RotatingFileHandler
...
args=(log_directory,'w')
此时,filemode'a 'a'
被硬编码为logging.handlers.TimedRotatingFileHandler
:
BaseRotatingHandler.__init__(self, filename, 'a', encoding=encoding,
delay=delay, errors=errors)
https://github.com/python/cpython/blob/master/Lib/logging/handlers.py#L207
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.