
我正在編寫一個永遠不會終止的程序,它還會產生其正在執行的操作的大量日誌(文件)。我想要的是 Linux 進程定期(每 X 分鐘(cronjob?)):
- 從目前日誌檔案中取得當前日誌
- 將它們放在一個單獨的檔案(適當命名)中以進行離線儲存/刪除
- 截斷目前日誌文件,使資料不重複。
全部無資料遺失或中斷到製作程式。這樣我最後得到了一系列時間分隔的日誌
有 Linux 實用程式或已知的解決方案嗎?或者我應該將此日誌記錄功能建置到程式中?
答案1
Linux 用於syslogd
管理日誌檔案。我個人沒有使用過這個,所以我不確定可能會出現什麼問題,但本質上你只是將訊息發送到日誌,守護進程負責文件輪換等。
看這裡:http://linux.die.net/man/3/syslog
您可以配置/etc/syslog.conf
將訊息路由到特定文件,並且我認為您也可以使用 手動輪換日誌logrotate
,或設定 cron 作業。
答案2
通常守護程式只寫日誌,僅此而已。日誌輪換是另一個軟體的工作。通常是這樣對數旋轉或類似的軟體。