我正在尝试创建一个日志配置文件,每天创建一个完整的日志,但目前它会创建多个文件;
ie.
readings.log.2013-06-17_01
readings.log.2013-06-17_02
readings.log.2013-06-17_03
readings.log.2013-06-17_04
readings.log.2013-06-17_05
readings.log.2013-06-17_06
readings.log.2013-06-18_01
readings.log.2013-06-18_02
readings.log.2013-06-18_03
readings.log.2013-06-18_04
readings.log.2013-06-18_05
readings.log.2013-06-18_06
...etc
我确定我错过了一些东西,但是我需要在我的日志配置文件中进行更改,以使其每天只创建一个完整的日志文件,无论大小如何!>?
使用Python 2.7 atm,脚本全天候运行
THX 太
我的日志配置文件; (logging_v3.cfg)
[loggers]
keys=root
[logger_root]
handlers=screen,file
level=NOTSET
[formatters]
keys=simple,complex,logtemps
[formatter_simple]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
[formatter_complex]
format=%(asctime)s - %(name)s - %(levelname)s - %(module)s : %(lineno)d - %(message)s
[formatter_logtemps]
format=%(asctime)s %(name)s %(levelname)s %(message)s
[handlers]
keys=file,screen
[handler_file]
class=handlers.TimedRotatingFileHandler
interval=midnight
backupCount=0
formatter=logtemps
level=INFO
args=('logs/readings.log',)
[handler_screen]
class=StreamHandler
formatter=simple
level=DEBUG
args=(sys.stdout,)
我的程序中的代码用于完成上述工作; (显然还有很多,但这是记录的主要部分)
import logging
import logging.config
logging.config.fileConfig('config/logging_v3.cfg') #logfile config
logging.debug("DEBUG MODE")
logging.debug("INFO MODE")
答案 0 :(得分:1)
将评论编成答案:
logging Configuration file format的文档似乎有点不清楚每个部分中键和值的有效选项。
对于处理程序,它似乎将参数传递给构造函数,我们需要使用args
键,并在那里指定值,而不是在配置部分中使用键值对,例如:而不是:
[handler_file]
class=handlers.TimedRotatingFileHandler
interval=midnight
args=('logs/readings.log',)
我们应该使用:
[handler_file]
class=handlers.TimedRotatingFileHandler
args=('logs/readings.log', 'midnight',)