TimedRotatingFileHandler无法从辅助模块登录

时间:2015-04-07 23:30:05

标签: python logging

使用Python 3.3,我试图从帮助程序库和主脚本登录。文件结构:

Lib\
    __init__.py
    helper1.py
    helper2.py

script.py

在每个助手模块的顶部,我有

logger = logging.getLogger(__name__)

如果我在basicConfig中使用script.py,那么从模块进行的所有日志记录都可以正常进行。但是,如果我尝试使用TimedRotatingFileHandler,我只会从script.py

进行记录

basicConfig - 按预期工作:

import logging
from logging.handlers import TimedRotatingFileHandler

logging.basicConfig(filename='log_file.log',
                format='%(levelname)s - %(asctime)s - %(message)s',
                level=logging.DEBUG)


logger = logging.getLogger(__name__)
来自帮助程序库的

TimedRotatingFileHandler - 登录不会通过:

import logging
from logging.handlers import TimedRotatingFileHandler

handler = TimedRotatingFileHandler('rotating_log_file.log',
                                when = "d",
                                interval = 1,
                                backupCount =5)

formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

如何获取,以便使用TimedRotatingFileHander

进行所有记录

1 个答案:

答案 0 :(得分:0)

在根记录器上添加处理程序并设置级别 - 即仅在script.py中,

root_logger = logging.getLogger()
root_logger.addHandler(handler)
root_logger.setLevel(logging.DEBUG)

然后只使用其他logger变量进行实际记录。