2013-10-21 68 views

回答

2

默认情况下,logging模块记录到sys.stderr。捕获液流2,stderr代替:

python3 myscript.py -v 2>> log.txt 

也可以重定向既stdinstderr到相同的文件:

python3 myscript.py -v >> log.txt 2>&1 

这里stderr被发送到相同的输出stdin(输出1)被引导至。

这假设您已经设置了日志级别以允许级别为DEBUG的消息。

最后但并非最不重要的,你可以告诉logging.basicConfig()登录到不同的数据流,而不是stderr

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) 

,或者你可以给它一个文件名,这样,不需要重定向:

logging.basicConfig(filename='log.txt', level=logging.DEBUG) 
+0

与downvote无关 - 您还可以配置记录器直接写入文件。我不确定这是否会更好。 – Murph

1

将您的日志级别设置为正在调试。

Logger.setLevel(Logger.DEBUG) 

参见其中他们陈述为logging文档:

设置此记录器LVL的阈值。记录不如lvl严重的消息将被忽略。当创建记录器时,级别设置为NOTSET(当记录器是根记录器时会导致所有消息处理,或者当记录器是非根记录器时将其委派给父项)。请注意,根记录器是使用级别WARNING创建的。

+0

啊,我纠正了。 –