4.2.4 ログファイルをラップアラウンドさせて使用する(rotatelogs2プログラム)
アクセスログ,エラーログ,リクエストログをログファイルサイズで分割して,複数のファイルにラップアラウンドして出力できます。rotatelogs2プログラムは次のディレクティブに指定できます。
-
CustomLogディレクティブ
-
ErrorLogディレクティブ
-
HWSRequestLogディレクティブ
-
HWSWebSocketLogディレクティブ
-
TransferLogディレクティブ
プログラムの指定方法を次に示します。
(1) 形式
rotatelogs2 ログファイルプリフィックス名 ログファイルサイズ ログファイル個数
(2) オペランド
-
ログファイルプリフィックス名
出力するログファイルのプリフィックス名を絶対パスで指定します。
出力するログファイルは「プリフィックス.nnn」のファイル名となります。
.nnnは.001からログファイル個数で指定した値までです。
「ログファイル個数」をnnn面とすると,nnn面のうち,HTTP Server起動時の更新時刻が最新のものが,カレントのログファイルとなります。ログファイルは,ファイル名称のプリフィックスに拡張子.001〜.nnnを付けて区別します。カレントのログファイルの拡張子が.mmmであった場合,カレントのログファイルがいっぱいになると,続きは,.mmm+1 のログファイルをクリアして出力されます。.mmmが.nnnと一致した場合,続きは.001に出力されます。
Windows版の場合,「プリフィックス.index」のインデクス番号格納用ファイルが作成されます。このファイルは.nnn管理用ファイルであり,rotatelogs2プログラムの起動時に作成され,停止時に削除されます。ただし,起動エラーの一部などで削除されないことがありますが,以降のWebサーバの動作に影響はありません。
-
ログファイルサイズ 〜((1−2097151))
ログファイルの最大サイズ(単位:KB)を指定します。
ログを出力するタイミングで,最大サイズを超えていると,次のログファイルをクリアして続きが出力されます。
-
ログファイル個数 〜((1−256))
出力するログファイルの最大数を指定します。
最大サイズを超えて次のログファイルに移る場合,それまで処理していたログファイルの拡張子が最大個数と同じとき,再度.001のファイルから使用します。
(3) 使用方法
ディレクティブに,"|プログラム名"の形式で指定して使用します。
- (例)4,096KBごとにエラーログを最大5個採取する場合
ErrorLog "|\"\"<Application Serverのインストールディレクトリ>/httpsd/sbin/rotatelogs2.exe\" \"<Application Serverのインストールディレクトリ>/httpsd/logs/errorlog\" 4096 5\""
errorlog.001〜errorlog.005の順番にログが出力されます。errorlog.005が4,096KBを超えるとerrorlog.001をクリアして続きが出力されます。HTTP Server起動時に,すでにこれらのログファイルがある場合には,更新時刻の最も新しいログファイルが出力対象のログファイルとなります。このログファイルのサイズがすでに4,096KBを超えている場合には,次のログファイルをクリアして続きが出力されます。4,096KBを超えない場合は,このファイルの続きに出力されます。
(4) 注意事項
(a) UNIX版の注意事項
-
rotatelogs2プログラムはSIGTERM,SIGUSR1およびSIGHUPシグナルを受信してもプロセス終了処理を実施しませんが,制御プロセスとサーバプロセスが終了すればプロセス終了します。
(b) Windows版の注意事項
-
Webサーバはサービスとして起動してください。サービスとして起動しない場合,Webサーバの停止または再起動の際に,不当にログファイルがクリアされることがあります。
-
インデクス番号格納用ファイルは,rotatelogs2プログラムが動作中の間は絶対に編集や削除をしないでください。編集するとログが正しく出力されないことがあります。
-
Webサーバの起動時にインデクス番号格納用ファイル「プリフィックス.index」と同名のファイルが存在した場合,ファイルは上書きされます。
-
起動時に引数誤りなどがあった場合にWebサーバは起動しますが,rotatelogs2プログラムは起動しません。その際,rotatelogs2プログラムではイベントログに次に示す属性を持ったメッセージを出力します。
-
種類:エラー
-
ソース:CosminexusHTTPServer
-
分類:なし
-
イベント:3299
-
説明:rotatelogs2.exe: (メッセージ)
出力されたメッセージの意味については,マニュアル「アプリケーションサーバ メッセージ(構築/運用/開発用)」の「21.7.5 rotatelogs2プログラム」を参照してください。
このメッセージが出力されていた場合,メッセージ内容に従って引数を見直したあとにサーバを再起動してください。なお,同じメッセージが複数回出力されることがあります。
-
(c) 共通の注意事項
-
ログファイルプリフィックス名は絶対パスで指定してください。
-
HTTP Server起動時の出力ログファイルは,更新日時が最新のものを対象とするため,誤ってファイルを更新した場合は正しいファイルへの出力ができなくなります。
-
ログファイルサイズには,同一秒内に複数のファイルが指定サイズを超えるような小さいサイズを指定しないでください。このようなサイズを指定した場合には,最も新しいログファイル以外が出力対象となり正しくローテーションされなくなることがあります。
-
コンフィグファイル内に,同一のログファイルプリフィックス名を複数個所で指定しないでください。複数個所で指定した場合には,最も新しいログファイル以外が出力対象となり正しくローテーションされなくなることがあります。
-
TransferLog,CustomLog,ErrorLog,およびHWSRequestLogディレクティブのrotatelogs2プログラムの引数指定に誤りがある場合,rotatelogs2プログラムの起動に失敗しますが,Webサーバは起動します。この場合はログが出力されません。TransferLog,CustomLog,ErrorLog,およびHWSRequestLogディレクティブにrotatelogs2プログラムを指定した場合は,ログファイルが作成され,意図した分割が実施されることを確認してください。