newsyslogがログファイルをローテーションするたびに、syslogはファイルへのログインを停止します。 syslogdの再起動が完了するまで。 (logrotate
を使用しています)Linux
でsyslogは、ログローテーション後にログを停止します。
(myserver:wheel)# logger -p local1.info -t myprocess "hello thiru"; ll myfile.log; cat myfile.log
-rw-r--r-- 1 root wheel 0B Nov 10 11:26 myfile.log
(myserver:wheel)# /etc/rc.d/syslogd restart
Stopping syslogd.
Starting syslogd.
(myserver:wheel)# logger -p local1.info -t myprocess "hello thiru"; ll myfile.log; cat myfile.log
-rw-r--r-- 1 root wheel 44B Nov 10 12:04 myfile.log
Nov 10 12:04:31 myserver myprocess: hello thiru
(myserver:wheel)#
、我々はlogroate confののpostrotate
セクションにsyslog/rsyslog restart
をすることによってこの問題を解決することができます。
postrotate
に類似するものはnewsyslog
にありますか?
編集:
のSyslogとのnewsyslogのconfファイル:SIGHUP
の略たとえば1
ための信号を必要に応じて
(TPC-E11-36:wheel)# cat /etc/newsyslog.d/newsyslog-myprocess.conf
/var/log/myfile.log 644 20 10000 * Z
(TPC-E11-36:wheel)# cat /etc/syslog.d/syslog-myprocess.conf
!myprocess
local1.info /var/log/myfile.log
(TPC-E11-36:wheel)#
が、デフォルトでは、' syslogd'は、ログファイルは 'N'フラグまたは**別のプロセスのいずれかしない限り、回転させた信号を受信し、 **が指定されています。あなたの 'newsyslog.conf'か' newsyslog.conf.d/* 'ファイルを確認してください。 –
@RichardSmith 'newsyslog.conf'にプロセスを指定する方法がわかりません。そして私は 'N'フラグも使用していません。 –
問題を再現できません。私の '/ etc/syslog.conf'にあなたの行を追加し、' newsyslog -f newsyslog-cnd.conf'を起動すると、ログファイルはローテーションされ、 'logfile by size'のメッセージと新しいメッセージが生成されます。 'logger'は新しいファイルにうまく働きます。あなたのサブディレクトリ 'newsyslog.d'と' syslog.d'は認識できません。ログローテーション後に '0B'ファイルを取得しません。 –