我正在尝试使用模块日志记录在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
但没有骰子。有什么帮助吗?
答案 0 :(得分:1)
不确定您是否已将其弄清楚,但根据提供的信息,您看起来与您的记录器名称不匹配。
在主脚本中,您将记录器定义为'Script_2'
,并在'download'
模块中引用'script_2.download'
。所以父母是大写的,孩子不是。
因此实际上有两个不同的记录器不共享相同的层次结构。