在 Linux 系统中,可以使用 logrotate 工具进行日志轮转
logrotate_example.py
的 Python 脚本,内容如下:import sys
import time
def main():
count = 0
while True:
with open("/tmp/example.log", "a") as f:
f.write(f"Log entry {count}\n")
count += 1
time.sleep(1)
if __name__ == "__main__":
main()
这个脚本会每秒向 /tmp/example.log
文件写入一条日志。
logrotate_example.conf
的 logrotate 配置文件,内容如下:/tmp/example.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
这个配置文件指定了日志轮转的参数:
daily
:每天进行一次日志轮转。rotate 7
:保留最近 7 天的日志文件。compress
:压缩旧的日志文件。missingok
:如果日志文件不存在,不会产生错误。notifempty
:如果日志文件为空,不进行轮转。copytruncate
:在轮转之前,先复制原始日志文件,然后清空原始日志文件。这对于正在写入的日志文件非常有用。将 logrotate_example.conf
文件放置到 /etc/logrotate.d/
目录下。这样,logrotate 就会自动应用这个配置文件。
运行 Python 脚本:
python logrotate_example.py &
logrotate
命令手动触发日志轮转:sudo logrotate -f /etc/logrotate.d/logrotate_example.conf
现在,你应该能看到 /tmp/example.log
文件已经被轮转,并且只保留了最近 7 天的日志文件。
注意:在实际生产环境中,你需要确保 logrotate 服务正在运行,并根据需要调整 logrotate 配置文件。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。