2.6.1 rotatelogs
ログを時間単位に分割して、複数のファイルに出力します。
説明
アクセスログやエラーログを一定時間単位(例えば、24時間ごと)に分割して、複数のファイルに出力できます。rotatelogsプログラムは次のディレクティブに指定できます。
-
CustomLogディレクティブ
-
ErrorLogディレクティブ
-
HWSRequestLogディレクティブ
-
TransferLogディレクティブ
書式
rotatelogs 分割ログファイルのプレフィックス ログ分割時間間隔 [-fnum ファイル数] [-diff GMTに対する時差]
- 分割ログファイルのプレフィックス
-
分割ログファイルのプレフィックスを絶対パスで指定します。
「プレフィックス.nnnnnnnnnn」というファイルに、ログを採取します。
nnnnnnnnnn:ログ採取開始時刻を表します。ログ採取時刻とは次の式で示す値です。
((1970年1月1日の0時0分0秒(GMT)を起点とした、ログを出力する時間の通算秒数÷ログ分割時間間隔)の小数点以下を切り捨てた値)×ログ分割時間間隔
- ログ分割時間間隔
-
1つのログファイルを採取する時間間隔を秒単位に指定します。指定した時間が経過するごとに、新規ファイルにログを採取します。
- 指定できる値
-
1〜31536000
- -fnum ファイル数
-
分割したログファイルのファイル数を指定します。分割したファイル数がここで指定した数を超えた場合、最も古いファイルから削除します。このオプションを省略した場合、ファイルは削除しません。
- 指定できる値
-
1〜256
- -diff GMTに対する時差
-
ログファイルを分割する基準となる時間を、GMTに対する時差として分単位で指定します。指定しないまたは0を指定すると、1970年1月1日0時0分0秒(GMT)が基準時間となります。GMTに対するローカルタイムの差がn時間である場合に、ローカルタイムのm時0分0秒を基準にするときには、(n-m)×60を指定します。JSTの0時0分0秒を基準にする場合には、(+9-0)×60で540を指定します。
- 指定できる値
-
-1439〜1439
格納先
Application Serverインストールディレクトリー/httpsd/sbin
記述例
ディレクティブに、"|プログラム名"の形式で指定して使用します。ログファイルを定期的に別ファイルに分割して採取します。
24時間ごとにアクセスログを分割して、Application Serverインストールディレクトリー/httpsd/logs/access.nnnnnnnnnnファイルに採取します。分割時間を日本時間に設定し、日本時間の毎0時にログファイルを分割する場合の指定を次に示します。
TransferLog "|Application Serverインストールディレクトリー/httpsd/sbin/rotatelogs Application Serverインストールディレクトリー/httpsd/logs/access 86400 -diff 540"
-
ログファイル名:Application Serverインストールディレクトリー/httpsd/logs/access.nnnnnnnnnn
-
ログ分割時間間隔:86400秒(=24時間)
注意事項
-
rotatelogsプログラムは、SIGTERM、SIGUSR1およびSIGHUPシグナルを受信しても、プロセス終了処理を実施しません。制御プロセスとサーバプロセスが終了すれば、プロセスは終了します。
-
-fnumオプションの指定でのログファイルの制御では、Webサーバの再起動時にディレクトリー名またはログファイルのプレフィックスを変更すると、以前に採取したログファイルが削除されません。この場合は運用に応じて削除してください。
-
Webサーバを起動または再起動してから、指定したログ分割間隔時間が経過した場合、分割したログファイルのプレフィックスに一致するファイルの数が-fnumオプションの指定値を超えると、作成時間の古いログファイルから削除されます。
-
分割ログファイルのプレフィックスは絶対パスで指定してください。
-
rotatelogsプログラムの引数指定に誤りがある場合、rotatelogsプログラムの起動に失敗しますが、Webサーバは起動します。この場合はログは出力されません。rotatelogsプログラムを指定した場合は、ログファイルが作成され、意図した分割が実施されることを確認してください。