Python 2.7 RotatingFileHandler不从模块中记录

时间:2014-01-13 21:28:12

标签: python-2.7 logging

我正在尝试使用模块日志记录在Python 2.7中设置RotatingFileHandler,但无论我做什么,我只能获得顶级脚本来写入日志文件。

这是我的顶级脚本中的代码:

import logging
import Lib.download as d

LOG_FILE = public_dir + "\script2.log"

log = logging.getLogger('Script_2')
log.setLevel(logging.DEBUG)

rotate_handler = handlers.RotatingFileHandler(LOG_FILE, maxBytes = 5000, backupCount=5)
log_format = logging.Formatter('%(asctime)s %(name)-8s:%(levelname)s:%(message)s')
rotate_handler.setFormatter(log_format)

log.addHandler(rotate_handler)

log.debug('Launching meat of script_2')
d.some_function()
log.info('script_2 completed successfully')

一个模块中的代码'下载':

import logging
log = logging.getLogger('script_2.download')

def some_function():
    log.debug('doing some_function')

我的输出不反映模块记录

2014-01-13 12:56:04,428 Script_2:DEBUG:Launching the meat of script_2
2014-01-13 12:56:05,005 Script_2:INFO:Script_2 completed successfully

我错过了什么?记录模块工作正常,直到我添加了RotatingFileHandler ...

我尝试过论坛中的其他解决方案,包括Python logging over multiple files

但没有骰子。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

不确定您是否已将其弄清楚,但根据提供的信息,您看起来与您的记录器名称不匹配。

在主脚本中,您将记录器定义为'Script_2',并在'download'模块中引用'script_2.download'。所以父母是大写的,孩子不是。

因此实际上有两个不同的记录器不共享相同的层次结构。