Файлы журналов для незавершающихся процессов

Файлы журналов для незавершающихся процессов

Я пишу программу, которая никогда не прекратится. Она также будет создавать большие логи (файлы) того, что она делает. Я бы хотел, чтобы процесс Linux периодически (каждые X минут (cronjob?)) выполнял:

  1. Взять текущие журналы из текущего файла журнала
  2. поместите их в отдельный файл (с соответствующим названием) для автономного хранения/удаления
  3. Усеките текущий файл журнала, чтобы данные не дублировались.

Всебез потери данных или прерыванияв производящую программу. Так что я получаю последовательность журналов с временными разделителями

Есть ли утилита Linux или известное решение для этого? Или мне следует встроить эту функцию ведения журнала в программу?

решение1

Linux использует syslogdдля управления файлами журналов. Я не пользовался этим лично, поэтому не уверен, какие могут быть подвохи, но по сути вы просто отправляете сообщения в журнал, а демон заботится о ротации файлов и т. д.

Глянь сюда:http://linux.die.net/man/3/syslog

Вы можете настроить /etc/syslog.confмаршрутизацию сообщений в определенный файл, а также вручную ротировать журналы с помощью logrotate, или настроить задание cron.

решение2

Обычно демоны просто пишут логи и ничего больше. Ротация логов — это работа другого ПО. Обычно так и естьlogrotateили аналогичное программное обеспечение.

Связанный контент