Forever log и logrotate

Я использую forever для запуска моего узла nodeJs, и я выбираю файл журнала:

forever -l/home/api/log/api_output.log запустите server.js

Я использую logrotate для перемещения журнала файлов каждый день (например, советуем здесь: NodeJS/Forever архивные журналы), через один день мой каталог выглядит следующим образом:

-rw-r - r-- 1 корень root 0 avril 18 12:00 api_output.log

-rw-r - r-- 1 корень root 95492 avril 18 12:01 api_output.log-20140418

Итак, вращение работает, но сообщения журналов теперь записываются в api_output.log-20140418, а не api_output.log

Может кто-нибудь может мне помочь?

Ответ 1

Я забыл параметр copytruncate в моем файле конфигурации, теперь он работает:

/etc/logrotate.d/api:

/home/api/log/api_output.log {
  #size 50k
  daily
  dateext
  missingok
  rotate 7
  compress
  delaycompress
  notifempty
  #create 644 root
  copytruncate  
}

Ответ 2

Я думаю, это из-за живого потока между веками и файла журнала.

навсегда использовать поток файлов для файла журнала. и вы переименовали этот файл с помощью logrotate. но поток не меняется. поэтому сообщения журнала были написаны в api_output.log-20140418.

если вы хотите изменить поток, вы должны повернуть код node.js или использовать конвейер.