Python清除标准输出
我有一些网络服务器。它将日志写入已重定向到文件的sys.stdout。我需要在文件增长时定期清除它。我可以只使用sys.stdoutPython清除标准输出,python,stdout,Python,Stdout,我有一些网络服务器。它将日志写入已重定向到文件的sys.stdout。我需要在文件增长时定期清除它。我可以只使用sys.stdout吗?如果要刷新stdout,只需在代码中添加这一行即可 sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) 如果要刷新标准输出,只需在代码中添加这一行即可 sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) 您可以做的是删除日志文件: rm logfile
吗?如果要刷新stdout,只需在代码中添加这一行即可
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
如果要刷新标准输出,只需在代码中添加这一行即可
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
您可以做的是删除日志文件:
rm logfile
或将其截断:
echo -n > logfile
Web服务器仍将使用open filedescriptor,该文件仍将位于磁盘上,但该文件名无法再访问该文件。一旦服务器重新启动(使用相同的重定向),日志文件将从头开始创建
另一个选项是对日志使用logrotate,这允许您更改正在写入的日志文件。您可以做的是删除日志文件:
rm logfile
或将其截断:
echo -n > logfile
Web服务器仍将使用open filedescriptor,该文件仍将位于磁盘上,但该文件名无法再访问该文件。一旦服务器重新启动(使用相同的重定向),日志文件将从头开始创建
另一个选项是对日志使用logrotate,这允许您更改正在写入的日志文件。否。Stdout是一个输出流。写作是你唯一能做的事情。Stdout是一个输出流。写是你能对它做的唯一事情。我认为它会因为并发访问stdout
而导致问题。我认为它会因为并发访问stdout
而导致问题。