Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python日志-如何刷新每次写入日志文件?_Python_Logging - Fatal编程技术网

Python日志-如何刷新每次写入日志文件?

Python日志-如何刷新每次写入日志文件?,python,logging,Python,Logging,对的回答意味着每次写入都会刷新Python日志 我在Windows10上使用Python3.8.1的经验是,存在一些缓冲 我已经基于 导入日志 logging.basicConfig(filename='MyLog.txt',level=logging.DEBUG) 尽管如此: 如果newdata==1: 打印(“>”,数据字符串,sep='') logging.info(datettime_字符串+''+数据字符串) 新数据每隔几分钟出现一次,打印并记录一行文本。 当我观察控制台输出并将其与

对的回答意味着每次写入都会刷新Python日志

我在Windows10上使用Python3.8.1的经验是,存在一些缓冲

我已经基于

导入日志
logging.basicConfig(filename='MyLog.txt',level=logging.DEBUG)
尽管如此:
如果newdata==1:
打印(“>”,数据字符串,sep='')
logging.info(datettime_字符串+''+数据字符串)
新数据每隔几分钟出现一次,打印并记录一行文本。 当我观察控制台输出并将其与日志文件进行比较时,我看到日志文件更新之前有一个明显的延迟(几次数据更新)。
有没有一种方法可以将日志文件设置为unbuffered,或者显式刷新日志文件?

另一个问题清楚地表明它刷新Python流。如果它不工作,这似乎是操作系统的问题。你是如何检查日志文件的,可能问题就在那里。我正在使用记事本++监视日志文件。它有一个机制(文件统计自动检测)来重新加载更改的文件。当应用程序获得焦点时,它会立即重新加载已更改的文件。我已经确认了你的设置。我在Windows 10下运行,使用记事本++。@Jeremy-The
print(“>”,DataString,sep='')
语句正在工作,并在数据可用的确切时刻打印数据。只有
logging.info
延迟。如果
newdata==1
不起作用,那么
print
语句也不会执行。
import logging
<snip - other setup>
logging.basicConfig(filename='MyLog.txt', level=logging.DEBUG)

while True:
    <snip - get the data>
    if newdata == 1 :    
        print ("> ",DataString,sep='')
        logging.info(datettime_string+' '+DataString)