2016-04-08 9 views
0

私は長い間永遠に使用してきましたが、最近はちょっと変わった動作を始めました。永遠にログを切り詰めています

私はforever start /path/to/app.jsを実行するために使用され、すべてうまくいきました。巨大なログ(1-2ギグ)でも。

しかし、私は現在、非常に忙しいウェブアプリであり、ログは3〜4時間ごとに切り捨てられています。サイズはそれほど大きくはない、実際80-120メガズ。

これを実現した後、私は永遠に始まって(失敗したとしても)オプションでforever --append -o /path/to/out.log -e /path/to/error.log start /path/to/app.jsを始めることにしましたが、問題は解決しません。

私は本当に何をすべきかわかりません。 ありがとうございます!

バージョン:

  • ノードv0.12.7
  • NPM 2.11.3
  • は永遠
  • 3.16.0-4-AMD64#1 SMPのDebian 3.16.7-ckt11-をv0.15.1 1 + deb8u6(2015年11月9日)x86_64のGNU/Linuxの

UPDATE1:

アップデート2ハードディスクの使用可能なメモリたくさん持っているこれまでのところは良いforever -a -l >(logger -t fileteTrackchile) start /path/to/app.jsを、それログ情報を/var/log/user.log/var/log/syslog、および/var/log/messagesに格納します。同じ情報なので、一度だけ保存するほうがよいでしょう。

私は数日間それを稼働させ、それが動作するかどうかを確認します。

Update3と(FINAL):

問題は永遠に、またウィンストンとは何の関係もありませんでした。私は、ファイルが非常に大きく、ログビューアが一部しか表示していないことに気付きませんでした。混乱する部分は、最初の行(過去)がビューアー(OSXコンソール)によって切り捨てられて、ファイル自体が切り捨てられたと思うようになったことです。

答えて

0

問題は永遠にも、またウィンストンとも関係がありませんでした。私は、ファイルが非常に大きく、ログビューアが一部しか表示していないことに気付きませんでした。混乱する部分は、最初の行(過去)がビューアー(OSXコンソール)によって切り捨てられて、ファイル自体が切り捨てられたと思うようになったことです。

1

最初の方法については、予期しないログの切り捨てはログの回転によって発生することがよくあります。しかし、あなたのログを回転させることは言及していませんでした。

第2の方法は、loggerクライアントを使用してログをsyslogデーモンに送信することです。

syslogの設定により、ログが3つのログに記録されます。

このソリューションをお試しください。 /etc/rsyslog.d/10-fileteTrackchile.confという名前のファイルを作成します。ファイルで

、これらの行を追加します

その後
$template JustMsg,"%msg:2:10000%\n" 
if $programname == 'fileteTrackchile' then /var/log/fileteTrackchile.log;JustMsg 
if $programname == 'fileteTrackchile' then stop 

:ファイル名が10で始まるので

service rsyslog stop 
service rsyslog start 

を、それが他の構成の前に実行されます。

ロジックは、特定のファイルに変更を加えずにログを記録し、さらに処理を中止するように指示します。rsyslogであるため、上記の3つのファイルにログが記録されることはありません。

また、このような内容で/etc/logrotate.d/fileteTrackchileを作成したい場合があります。

/var/log/fileteTrackchile.log 
{ 
     rotate 7 
     daily 
     missingok 
     notifempty 
     compress 
     sharedscripts 
     postrotate 
       service rsyslog reload >/dev/null 2>&1 || true 
     endscript 
} 

は、これらのログローテーションのオプションの詳細についてはman logrotateを参照してください。

+0

ありがとうございましたMarkさん、これはうまくいきました!私はまだ2つの大きな問題があります。 1)アプリケーションを再起動すると、rsyslogを再起動する必要があり、後者の場合は、root権限が必要なため、操作上の観点からすべてが複雑になる。2)logrotateをまったく使用していない。 /home/someUser/.foreverのログを最初の場所に保存します。この切り詰めの問題が出てくるまで、それは私にとって完璧な解決策でした。 – nico

+0

rsyslogを再起動する必要はありません。ログローテーションを管理するためにlogrotateを使用する必要はありません。あなたは好きなようにあなたのログを回転することができます。 –

関連する問題