我有某种网络服务器。它将日志写入sys.stdout
,并将其重定向到文件。随着它的增长,我需要定期清除这个文件。我可以仅使用sys.stdout
吗?
答案 0 :(得分:0)
如果你想刷新标准输出,只需在你的代码中添加这一行。
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
答案 1 :(得分:0)
您可以做的是删除日志文件:
rm logfile
或截断它:
echo -n > logfile
网络服务器仍然会使用打开的文件描述符,文件仍然在磁盘上,但不再可以通过该文件名访问。一旦服务器重新启动(使用相同的重定向),将从头开始创建日志文件。
另一种选择是使用logrotate作为日志,这允许您更改要写入的日志文件。