我最终使用的是dictConfig:
问题在于它创建了一个文件mytask.log
,然后根据TimedRotatingFileHandler对其进行轮换并创建了带日期的文件。
是否有一种总是以我想要的格式添加后缀,但继续使用dictConfig的方法?例如。我一直希望我的文件采用mytask.log.20190101
格式。
例如某事:
handler = logging.handlers.TimedRotatingFileHandler(....)
handler.suffix = "%Y%m%d"
root_logger.addHandler(handler)
但是继续使用dictConfig。
# ... in my main...
configure(log_level, log_file)
## defined elsewhere
def configure(level, file_):
logging.config.dictConfig({
'version': 1,
'formatters': {
'basic': {
'format': '%(asctime)s %(levelname)s %(name)s %(filename)s:%(lineno)s %(message)s'
},
},
'handlers': {
'console': {
'level': 'ERROR',
'formatter': 'basic',
'class': 'logging.StreamHandler',
},
'file': {
'level': 'INFO',
'formatter': 'basic',
'filename': file_,
'utc': True,
'when': 'midnight',
'encoding': 'utf-8',
'backupCount': 6,
'class': 'logging.handlers.TimedRotatingFileHandler',
},
},
'loggers': {
'': {
'handlers': ['console', 'file'],
'level': level,
},
},
})