私は OS X 10.9.4 を使用しており、newsyslogを使用してアプリ開発ログ ファイルをローテーションしようとしています。
より具体的には、ファイルを毎日ローテーションしたいのですが、ファイルが空でない場合のみです (newsyslog は、ローテーションするすべてのログファイルに 1 行または 2 行を書き込むため、少なくとも 1kb のログのみをローテーションしたいとしましょう)。
ファイルを作成しました/etc/newsyslog.d/code.conf
:
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/Users/manuel/code/**/log/*.log manuel:staff 644 7 1 $D0 GN
構成ファイルのマニュアル ページを理解する方法は、size
と条件を組み合わせて機能する必要があるため、ログ ファイルが 1kb 以上の場合にのみ、when
毎晩深夜にローテーションする必要があるということです。
残念ながら、これは起こりません。ログ ファイルは、newsyslog からのローテーション メッセージだけであっても、それ以外のものであっても、毎晩ローテーションされます。
~/code/myapp/log (master) $ ls
total 32
drwxr-xr-x 6 manuel staff 204B Aug 8 00:17 .
drwxr-xr-x 22 manuel staff 748B Jul 25 14:56 ..
-rw-r--r-- 1 manuel staff 64B Aug 8 00:17 development.log
-rw-r--r-- 1 manuel staff 153B Aug 8 00:17 development.log.0
~/code/myapp/log (master) $ cat development.log
Aug 8 00:17:41 localhost newsyslog[81858]: logfile turned over
~/code/myapp/log (master) $ cat development.log.0
Aug 7 00:45:17 Manuels-MacBook-Pro newsyslog[34434]: logfile turned over due to size>1K
Aug 8 00:17:41 localhost newsyslog[81858]: logfile turned over
これを機能させる方法に関するヒントをいただければ幸いです。