Python 在进程完成之前将日志重定向到文件

Python 在进程完成之前将日志重定向到文件,python,Python,test.py(工作): 运行代码:python test.py>test.log 您将在test.log中获得日志 test.py(不工作): 但这一次你在日志里什么都没有 在程序完成之前,如果没有python日志模块(只需使用重定向“>”),如何获取日志?默认情况下,python buffersstdout,以便将日志分块写入磁盘。您可以通过几种不同的方式关闭缓冲,这里有两种。调用脚本时,可以使用-u选项,即: python -u test.py 您可以使用环境变量bEpythonunbu

test.py(工作):

运行代码:python test.py>test.log

您将在test.log中获得日志

test.py(不工作):

但这一次你在日志里什么都没有


在程序完成之前,如果没有python日志模块(只需使用重定向“>”),如何获取日志?

默认情况下,python buffers
stdout
,以便将日志分块写入磁盘。您可以通过几种不同的方式关闭缓冲,这里有两种。调用脚本时,可以使用
-u
选项,即:

python -u test.py
您可以使用环境变量bE
pythonunburged

export PYTHONUNBUFFERED=true
python test.py

查找“刷新输出”。我把你的问题标为另一个问题的重复。虽然它说的是“屏幕”而不是文件,但从程序的角度来看,它实际上是相同的;sys.stdout.flush()。
python -u test.py
export PYTHONUNBUFFERED=true
python test.py