我试图找出是否可以创建从配置文件中旋转日志的时间。
这是示例代码 它应该每分钟写一个新的日志文件。
import logging
import logging.config
import logging.handlers
import time
if __name__ == '__main__':
logging.config.fileConfig('logging.cfg')
logger = logging.getLogger("main")
logger.info("start")
while True:
time.sleep(1)
logger.info("log more")
" logging.cfg"文件看起来像这样。
我试图猜测TimedRotatingFileHandler定义的语法。
[loggers]
keys=root,main
[handlers]
keys=fileHandler, consoleHandler
[formatters]
keys=myFormatter
[logger_root]
level=CRITICAL
handlers=consoleHandler
[logger_main]
level=INFO
handlers=fileHandler
qualname=main
[handler_consoleHandler]
class=StreamHandler
level=WARN
formatter=myFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=logging.handlers.TimedRotatingFileHandler
formatter=myFormatter
args=("example.log",)
path='timeexample.log'
when='m'
interval=1
backupCount=5
[formatter_myFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
启动代码会创建一个有效的" example.log"哪个不旋转 并且不会抛出任何错误。
如何更改配置文件以使其旋转?
我在windows7 32bit上使用python 3.5.2进行原型设计并计划在生产中使用debian
答案 0 :(得分:0)
有点猜测帮助:
像从代码中调用TimedRotatingFileHandler这样的参数可以正常工作。
[handler_fileHandler]
class=logging.handlers.TimedRotatingFileHandler
formatter=myFormatter
args=("timeexample.log", 'm', 1, 5, )
什么行不通的是使用名称:
args=("timeexample.log", when='m', interval=1, backupCount=5, )
答案 1 :(得分:-1)
更改您的处理程序,如下所示:
[handler_fileHandler]
class=handlers.TimedRotatingFileHandler
interval=midnight
backupCount=1
formatter=complex
level=NOTSET
args=('example.log',)