- Category -

HOME > 失敗レポート > Apache > rotatelogs - ローテーションされたログファイルの名前

rotatelogs - ローテーションされたログファイルの名前

作成日時:2005/02/01  更新日時:2007/02/03

失敗

CustomLog "|usr/local/apache2/bin/rotatelogs logs/access_log 86400" common

上記のように rotatelogs を使用して、ログファイルをローテーションさせたところ、ログファイルの名前が access_log.1075075200 といったものになってしまいました。 これじゃあ、何時のログだか分かりにくいんですけど…。

環境

このレポートは、以下の環境について記述したものです。

OS SUSE Linux 9.1
Web サーバ Apache 2.0

原因

ログファイルの名前に日付フォーマット文字列を指定しない場合は、ファイル名の末尾に 1970 年 1 月 1 日 00:00:00 からの経過秒数が付加されます。 このため、access_log.1075075200 というようなファイル名になってしまったわけです。

解決策

ログファイルの名前を分かりやすいものにするには、日付フォーマット文字列を使用します。

(1) ファイル名に日付フォーマット文字列を付け

rogtatelogs に指定しているログファイル名に、フォーマット文字列を付けます。
以下に、ファイル名の末尾に年月日を付けてローテーションさせる設定を示します。

[httpd.conf] ファイル名の末尾に年月日を付けてローテーション
CustomLog "|usr/local/apache2/bin/rotatelogs logs/access_log.%Y%m%d 86400" common

■ 日付フォーマット文字列

rotatelogs の代表的なフォーマット文字列を挙げます。

%A 曜日 (すべて)。 [例] Wednesday
%a 曜日 (3 文字)。 [例] Wed
%B 月の名前 (すべて)。 [例] March
%b 月の名前 (3 文字)。 [例] Mar
%c 日付および時刻。 [例] Wed Mar 16 00:00:00 2005
%d 日。 [例] 16
%m 月。 [例] 03
%Y 年 (4 桁)。 [例] 2005
%y 年 (2桁)。 [例] 05

補足

■ rotatelogs の書式

rotatelogs の書式は以下の通りです。

rotatelogs <ログファイル> <ローテーション間隔> <最大ファイルサイズ>

ログファイル ログファイルのパスを指定します。ファイル名には日付フォーマット文字列が使用できます。
ローテーション間隔 ローテーションを行う間隔を秒単位で指定します。
最大ファイルサイズ 最大ファイルサイズを MB 単位で指定します。

参考サイト

履歴

  • 2007/02/03  レポートを HTML 形式に変更&参考サイトを修正
  • 2005/03/16  日付フォーマット文字列に [例] を追加