Python3:使用dictConfig

时间:2019-01-02 10:56:43

标签: python-3.x logging

我最终使用的是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,
            },
        },
    })

0 个答案:

没有答案