| 
	1. 概要						2. ログファイル名				3. 所有ユーザ名・グループ名	4. 権限						5. 世代数						6. サイズ						7. タイミング					8. 保存形式					9. pid ファイル名・シグナル	 
1. 概要「FreeBSD 14.3 RELEASE」の。のデフォルトの状態です。
/etc/newsyslog.conf
 「newsyslog」は、起動されるたびに「newsyslog.conf」を参照しなおします。
 なので、特に何かを再起動させなくても、「newsyslog.conf」を書き換えておけば、最短1分後には、反映させることが出来ます。
 以下、「newsyslog.conf」の記述方法を簡単に説明します。
# configuration file for newsyslog
#
# Entries which do not specify the '/pid_file' field will cause the
# syslogd process to be signalled when that log file is rotated.  This
# action is only appropriate for log files which are written to by the
# syslogd process (ie, files listed in /etc/syslog.conf).  If there
# is no process which needs to be signalled when a given log file is
# rotated, then the entry for that file should include the 'N' flag.
#
# Note: some sites will want to select more restrictive protections than the
# defaults.  In particular, it may be desirable to switch many of the 644
# entries to 640 or 600.  For example, some sites will consider the
# contents of maillog, messages, and lpd-errs to be confidential.  In the
# future, these defaults may change to more conservative ones.
#
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
/var/log/all.log                        600  7     *    @T00  J
/var/log/auth.log                       600  7     1000 @0101T JC
/var/log/console.log                    600  5     1000 *     J
/var/log/cron                           600  3     1000 *     JC
/var/log/daemon.log                     644  5     1000 @0101T JC
/var/log/daily.log                      640  7     *    @T00  JN
/var/log/debug.log                      600  7     1000 *     JC
/var/log/devd.log                       644  3     1000 *     JC
/var/log/init.log                       644  3     1000 *     J
/var/log/kerberos.log                   600  7     1000 *     J
/var/log/maillog                        640  7     *    @T00  JC
/var/log/messages                       644  5     1000 @0101T JC
/var/log/monthly.log                    640  12    *    $M1D0 JN
/var/log/security                       600  10    1000 *     JC
/var/log/utx.log                        644  3     *    @01T05 B
/var/log/weekly.log                     640  5     *    $W6D0 JN
<include> /etc/newsyslog.conf.d/[!.]*.conf
<include> /usr/local/etc/newsyslog.conf.d/[!.]*.conf
 2. ログファイル名ローテーションさせるログファイル名です。
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
  ↑
 3. 所有ユーザ名・グループ名ログファイルを所有するユーザ名とグループ名です。
 省略可能。省略した場合は「root:wheel」になります。
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
						↑
 4. 権限ログファイルの、ファイルのパーミッション (owner, group, world に対する read, write, execute 権限) を示します。
 「chmod」で指定するアレです。
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
										↑
 5. 世代数バックアップファイルのバージョン最大数です。
 「3」と書いておけば、「.0」~「.3」までのバックアップファイルができることになります。
 数が小さいものほど最新のバックアップファイルになります。
 最大数を超えたファイルは、自動的に削除してくれます。
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
											 ↑
 6. サイズファイルがこの値を超える値になったらローテーションさせるということを示しています。
 単位は、「kb(キロバイト)」です。
 「*」を指定しているとサイズのチェックは行いません。
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
													↑
 7. タイミングいつローテーションさせるかというタイミングの指定です。
 指定方法は、多数あります。
 「*」は時間的なタイミングではローテーションしないという意味です。
 単に数字を書けば時間を意味し、「168」と書けば、「168÷24」→「7」ですから、最後にローテーションされた日から1週間後にローテーションさせるという意味です。
 「@T00」は、毎日「00:00」にローテーションさせるという意味です。
 「@T0105」は、毎日「01:05」にローテーションさせるという意味です。
 「$W6D0」は、毎週土曜日の「00:00」にローテーションさせるという意味です。
 「$M1D0」は、毎月1日の「00:00」にローテーションさせるという意味です。
 「$」で指定するのが便利な使い方で、「M」を指定すると毎月になりその後に続く数字が日付になります。
 「W」は毎週で、「0」が日曜日で「6」の土曜日まで指定できます。
 「D」はその日の時刻で「0」~「23」の範囲で指定できます。
 単に、数字で「1」と書けば、1時間おきにローテーションさせます(まだ、他の書き方を知らない)。
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
														↑
 8. 保存形式バックアップファイルの保存形式を指定します。
 いずれか1つを指定するかまたは複数の指定を組み合わせることもできます。
 わたしが使用する主な指定
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
																↑
 
| 記号 | 意     味 | 
|---|
 | B | バイナリもしくはその他の形式。「※1」 |  | C | ファイルが存在しない場合は作成します。 |  | G | 直訳すると『指定した logfile_name がシェルパターンであることを示し、このパターンにマッチする全ファイル名を newsyslog(8) がアーカイブすることを意味します。』って書いてあるんですが、わかりにくいですよね?「※2」 |  | J | bzip2 形式で圧縮します。 |  | X | xz 形式で圧縮します。 |  | Z | gzip 形式で圧縮します。 |  | - | 何も指定しませんが、以降に何か記述する必要があります。 |  
 ※1 ローテーション時のメッセージ
 
ログファイルがテキストファイルでバックアップファイルが圧縮形式のようなとき、「B」を指定していなければローテーションして新規に作成するログファイルの先頭にローテーションした旨のログを出力します。
これが書き込まれると後でログの解析で不便になることがある場合は、テキストファイルであっても「B」を指定します。
下記は「/var/log/messages」の例です。
 
※2 パターンマッチ
Feb 28 10:00:00 ns newsyslog[16869]: logfile turned over due to size>100K
 
直訳だとわかりにくいですが、ディレクトリに複数のログファイルがあるときに、「*.log」の形式でワイルドカードを指定できます。
 
9. pid ファイル名・シグナルプロセス「ID」を調べるために読むファイルを指定します。
 このフィールドが存在する場合、このファイルに書かれたプロセス「ID」に「signal_number」が送られます。
 正しく認識するために、このフィールドは「/」から開始する(つまり、絶対ディレクトリ)必要があります。
 例えば、「apache」の場合は、ログファイルがローテーションされて「rename」されても最初につかんだファイルにずっとログを書き続けます。
 なので、シグナルを送って「apache」を再起動させる必要がありますので、ここを指定します。
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
																		↑
 |