我有一个 python 脚本。它有一个SimpleLogger
with sys.stdout
as output_stream
。
logger = SimpleLogger(level=LogLevel.DEBUG)
当我在控制台中运行它时,我可以正确获取日志,但是每当我将输出重定向到文件时,在目标中找不到任何内容。
我尝试了多种方法:
- python server.py > /tmp/x.log 2>&1
- python server.py > /tmp/x.log
在这两种情况下,/tmp/x.log
都是空的。
我也试过了nohup python server.py
,但是什么也没写nohup.out
。
答案1
这可能只是由于缓冲所致。仅当积累了足够的输出时,您才会在文件中看到某些内容。您可以尝试使用python -u
来请求无缓冲的输出,或将环境变量设置PYTHONUNBUFFERED=
为任何非空字符串,如 Python 中所述命令行文档,或者.flush()
在每个.debug()
或类似的调用之后添加一个调用。