Apache(Windows用)で毎日エラーとアクセスログを取得するにはどうすればよいですか?


10

1台のサーバーで構成されたいくつかの仮想ホストでApache 2.2.9(Win32)を実行しています。それぞれに「Logs / [ドメイン名] -error.log」および「logs / [ドメイン名] -access.log」の形式の独自のErrorLogおよびCustomLog設定があります。残念ながら、これらは現在非常に大きなファイルを作成しています。

IISでは、ログスケジュールを指定できます。これにより、「yymmdd.log」の日次形式でログを記録できます。ここで私ができる類似のものはありますか?

それは毎日である必要はなく、毎週または毎月行うでしょう。これまでに記録されたすべてのものではなくXの量を維持できるように、それらを分割したいだけです。簡単なGoogleは、ログスプリッター、スクリプト、およびcronジョブを含む多くのLinux指向の回答を表示するようですが、Windowsのインストールにはあま​​り役に立ちません。

更新

radiusのおかげで、httpd-vhosts.confを微調整して、Apacheの組み込みのrotatelogsコマンドを次の形式で使用しました。

ErrorLog "|bin/rotatelogs logs/[domain name]-error.%Y-%m-%d-%H_%M_%S.log 5M" CustomLog "|bin/rotatelogs logs/[domain name]-access.%Y-%m-%d-%H_%M_%S.log 5M" common

現在のログファイルが5MBに達すると、新しいログファイルが作成されます。私はそれが求められているように毎日ではないことを知っていますが、それは彼らを実行可能な扱いやすいサイズに保ちます。数秒後にローテーションを試しましたが、ファイル名にタイムスタンプが正しく付けられていないようです(具体的には、時間、分、秒)。

回答:


11

あなたが探しているのは、apache http://httpd.apache.org/docs/2.2/programs/rotatelogs.htmlに付属しているrotatelogsプログラムです。

たとえば、毎日午前0時にログをローテーションするには:

CustomLog "|bin/rotatelogs -f /var/log/apache2/logfile.%Y.%m.%d.log 86400" common

+ 1、Apacheが独自のソリューションを持っていることを知りませんでした。
Karolis T.

Ubuntuのを使用して誰のためには、パスを変更する必要があるかもしれない/usr/bin/rotatelogsところがあるとして、rotatelogs発見されました。そうでない場合、Apacheはエラーのために再起動に失敗します。
BadHorsie



0

で直接お試しください

CustomLog "|C:/<chemin vers apache>/bin/rotatelogs.exe E:/<chemin vers les logs>/<monsite>/access-%Y_%m_%d.log 86400 60" combined

2
これが何をするかの説明を追加してください。
kasperd 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.