2016-11-10 4 views
4

newsyslogがログファイルをローテーションするたびに、syslogはファイルへのログインを停止します。 syslogdの再起動が完了するまで。 (logrotateを使用しています)Linuxsyslogは、ログローテーション後にログを停止します。

(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)# 
+2

が、デフォルトでは、' syslogd'は、ログファイルは 'N'フラグまたは**別のプロセスのいずれかしない限り、回転させた信号を受信し、 **が指定されています。あなたの 'newsyslog.conf'か' newsyslog.conf.d/* 'ファイルを確認してください。 –

+0

@RichardSmith 'newsyslog.conf'にプロセスを指定する方法がわかりません。そして私は 'N'フラグも使用していません。 –

+1

問題を再現できません。私の '/ etc/syslog.conf'にあなたの行を追加し、' newsyslog -f newsyslog-cnd.conf'を起動すると、ログファイルはローテーションされ、 'logfile by size'のメッセージと新しいメッセージが生成されます。 'logger'は新しいファイルにうまく働きます。あなたのサブディレクトリ 'newsyslog.d'と' syslog.d'は認識できません。ログローテーション後に '0B'ファイルを取得しません。 –

答えて

1

/etc/newsyslog.confにpidファイルのパスを追加して、詳細情報newsyslog here:https://www.freebsd.org/doc/handbook/configtuning-syslog.html

フォーマット/例は次のとおりです。

# logfilename   [owner:group] mode count size when flags [/pid_file] [sig_num] 

/var/log/your-app.log root:wheel  600 7  * @T00 GBJC /var/run/your-app.pid 1 

また、この回答を参照してください: `男のnewsyslog.conf`を参照してくださいhttps://serverfault.com/a/701563/94862

関連する問題