2009-07-16 14 views
3

私は現在の日付に基づいて毎日新しいエラーログファイルを作成するようにしています。 デフォルトのエラー・ログのファイル名は次のようなものです: のErrorLog「/logs/error.log」apacheのエラーログファイル名を現在の日付に設定する

と私はそれのようなものになりたい: のErrorLog「/logs/error_$year$month$day.log」

アイデア?

+0

どのオペレーティングシステムですか? –

答えて

1

Cronolog

cronologを見ては 標準入力からログファイルエントリを読み込み、 ファイル名テンプレートで指定された出力ファイルと現在の日付に各エントリ を書き込み、単純なフィルタプログラム です と時間。展開されたファイル名 が変更されると、現在のファイルは閉じて となり、新しいファイルが開かれます。 cronologは で、 とApacheなどのWebサーバーを使用して にアクセスログを毎日または 月ログに分割することを目的としています。

+0

ありがとう、私はこのアプローチを試してみます。私は一方でapache.orgのドキュメントで、これはおそらく行く方法だと読んでいます。 –

0

私のアプローチではなく、すべてのログ行の日付情報を持つカスタムログのために...そして、1日1回Apacheのログを回転させるようにApache用

logrotateのを設定するには、次のようになります。

%...{format}t: The time, in the form given by format, which should 
       be in strftime(3) format. (potentially localized) 

strftime(man 3 strftime)の書式設定ルールを使用する必要があります。

%F or its equivalent without dashes %Y%m%d 

ので:%{%Y%mの%dの}トンは、この構成は、回転しますあなたのhttpd.confにこれに仕事

+0

ファイル名のタイムスタンプ、または実際のメッセージが記録されますか? –

+0

申し訳ありませんが、私の答えはトピックではありません... 私のアプローチは、logrotateをApacheのログを1日に1回回転させるように設定することです。もう一度申し訳ありません。 – drAlberT

+0

問題ありません。しかし、私はただ明確にしたいと思った。あなたはあなたの答えを編集したいかもしれません。あなたのlogrotate答え、しかし –

0

変更

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" 

を行い

# CustomLog with explicit format string 
CustomLog my_log "%{%Y%m%d}t %h %l %u %t \"%r\" %>s %b" 

5MBのサイズに達するたびにエラーログファイルが作成され、ログファイル名のサフィックスがerrorlog.YYYY-mm-dd-HH_MM_SSという形式で作成されます。

関連する問題