2014-04-01 66 views
0

我希望所有记录器,特别是来自外部库的记录器登录到同一个文件。要做到这一点我创建FileHandlerFileHandler的python根记录器不记录

filename = ... 
mode = ... 
level = ... 
fmt = ... 

handler = logging.FileHandler(filename=filename, mode=mode) 
handler.setFormatter(logging.Formatter(fmt)) 
handler.setLevel(level) 

logger = logging.getLogger() 
logger.setLevel(level) 
logger.addHandler(handler) 

我读过,从根记录相同的过程“继承”的所有记录,让所有的人都应该登录到同一文件毕竟。我已经在两台机器上测试过了,一台使用python 2.7,另一台使用2.6。

第一个按我的预期工作,但在另一个日志文件存在但是是空的。看起来处理程序已正确注册,但日志丢失在某处。

我不知道为什么。你有什么建议吗?

由于提前,

格热戈日

编辑

为客户提供更全面的背景:我有某种亚军其不时在单独的进程来执行任务。跑步者有自己的记录器。对于在单独进程中执行的每个任务,第一步是设置根记录器,如上所述。

回答

0

Python2.6和Python2.7之间存在细微的差异。 2.6中的方法setLevel接受常量,如logging.DEBUG,而2.7接受logging.DEBUG常量和字符串"DEBUG"