我有一个奇怪的问题,即日志未写入日志文件。 我无法在此处发布所有代码,但是我正在做以下事情:
我有一个带文件处理程序的记录器,然后执行一些脚本(作为输入获取)。 执行脚本后,我正在执行的所有日志都将从日志文件中消失
logging.info('Before execution')
# execute user script
popen(...)
logging.info('After execution')
“执行后”消息未写入日志
奇怪的是,当我在终端上运行tail -f <log>
时,我可以看到'After execution'
消息。但是,当我打开日志文件以查看其内容时,却看不到此消息。
当我在登录'After execution'
之前关闭文件处理程序时,该消息将按预期方式写入日志。
可能是什么问题?我猜这与我在popen(...)
中执行的用户脚本有关,但是我不知道该脚本在做什么。当我运行一些简单的脚本时,一切都会按预期进行。可能是什么问题?
答案 0 :(得分:0)
Popen不会等待脚本完成,因此请尝试在日志记录调用之前使用等待,否则它将尽快且最有可能在脚本有时间完成之前执行日志记录。
logging.info('Before execution')
process = Popen(...)
process.wait()
logging.info('After execution')