我有一个脚本,通过 python 日志记录模块给我消息:logging.debug("a message here")
. 然而,当我运行 linux 命令时,python3 myscript.py -v >> log.txt
我得到一个空白文件。如何将调试消息输出到日志文件?
问问题
1650 次
2 回答
3
默认情况下,logging
模块记录到sys.stderr
. 捕获流 2,stderr
而不是:
python3 myscript.py -v 2>> log.txt
您还可以将两者都重定向stdin
到stderr
同一个文件:
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)
于 2013-10-21T19:16:03.820 回答
2
将您的日志级别设置为调试。
Logger.setLevel(Logger.DEBUG)
请参阅记录文档,其中他们声明:
将此记录器的阈值设置为 lvl。比 lvl 严重程度低的日志消息将被忽略。创建记录器时,级别设置为 NOTSET(当记录器是根记录器时会处理所有消息,或者当记录器是非根记录器时会委托给父级)。请注意,根记录器是使用 WARNING 级别创建的。
于 2013-10-21T19:27:10.990 回答