我正在编写一个永远不会终止的程序,它还会生成其正在执行的操作的大量日志(文件)。我想要的是 Linux 进程定期(每 X 分钟(cronjob?)):
- 从当前日志文件中获取当前日志
- 将它们放在一个单独的文件(适当命名)中以进行离线存储/删除
- 截断当前日志文件,使数据不重复。
全部无数据丢失或中断到制作程序。这样我最终得到了一系列时间分隔的日志
有 Linux 实用程序或已知的解决方案吗?或者我应该将此日志记录功能构建到程序中?
答案1
Linux 用于syslogd
管理日志文件。我个人没有使用过这个,所以我不确定可能会出现什么问题,但本质上你只是将消息发送到日志,守护进程负责文件轮换等。
看这里:http://linux.die.net/man/3/syslog
您可以配置/etc/syslog.conf
将消息路由到特定文件,并且我认为您也可以使用 手动轮换日志logrotate
,或者设置 cron 作业。
答案2
通常守护进程只写日志,仅此而已。日志轮换是另一个软件的工作。通常是这样对数旋转或类似的软件。