Python记录奇怪的问题

时间:2019-07-12 10:51:30

标签: python logging popen file-writing

我有一个奇怪的问题,即日志未写入日志文件。 我无法在此处发布所有代码,但是我正在做以下事情:

我有一个带文件处理程序的记录器,然后执行一些脚本(作为输入获取)。 执行脚本后,我正在执行的所有日志都将从日志文件中消失

logging.info('Before execution')
# execute user script
popen(...)
logging.info('After execution')

“执行后”消息未写入日志 奇怪的是,当我在终端上运行tail -f <log>时,我可以看到'After execution'消息。但是,当我打开日志文件以查看其内容时,却看不到此消息。

当我在登录'After execution'之前关闭文件处理程序时,该消息将按预期方式写入日志。

可能是什么问题?我猜这与我在popen(...)中执行的用户脚本有关,但是我不知道该脚本在做什么。当我运行一些简单的脚本时,一切都会按预期进行。可能是什么问题?

1 个答案:

答案 0 :(得分:0)

Popen不会等待脚本完成,因此请尝试在日志记录调用之前使用等待,否则它将尽快且最有可能在脚本有时间完成之前执行日志记录。

logging.info('Before execution')
process = Popen(...)
process.wait()
logging.info('After execution')