logging根据日期分割日志文件

logging根据日期分割日志文件

使用的handle为logging.handlers.TimedRotatingFileHandler

通过when参数设置时间的分割单位

  • S - 秒
  • M - 分
  • H - 小时
  • D - 天
  • W{0-6}-周,0-6为周一到周六,0表示周一
    dictConfig文件如下
    myLogger.py
import logging.config

LOGGING = {
    
    
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
    
    
        'default': {
    
    
            'format': '%(asctime)s %(levelname)s %(name)s %(message)s'
        },
    },
    'handlers': {
    
    
        'file': {
    
    
            'class': 'logging.handlers.TimedRotatingFileHandler',
            'level': 'DEBUG',
            'formatter': 'default',
            'filename': 'log',
            'when': 's',  # 分割单位,秒
            'encoding': 'utf-8',
        },
    },
    'root': {
    
    
        'handlers': ['file'],
        'level': 'DEBUG',
    },
}

def initLoggingConfig():
    logging.config.dictConfig(LOGGING)

测试代码

import logging
from module.log import myLogger


if __name__ == '__main__':
    myLogger.initLoggingConfig()
    logger = logging.getLogger('mylogger')
    logger.debug('A debug message')
    # 为实现日志文件的分割效果,多打印几条日志
    for i in range(100000):
        logger.debug('A debug message {}'.format(i))

最终运行会创建多个文件

log
log.2021-01-30_15-27-46
log.2021-01-30_15-27-47
log.2021-01-30_15-27-48
log.2021-01-30_15-27-49
log.2021-01-30_15-27-50
log.2021-01-30_15-27-51
log.2021-01-30_15-27-52
log.2021-01-30_15-27-53
log.2021-01-30_15-27-54
log.2021-01-30_15-27-55
log.2021-01-30_15-27-56

猜你喜欢

转载自blog.csdn.net/BDawn/article/details/113435898