web-dev-qa-db-ja.com

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

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に達すると、新しいログファイルが作成されます。私はそれが求められているように毎日ではないことを知っています、しかしそれは彼らをそうすることができる扱いやすいサイズに保ちます。数秒後にローテーションを試しましたが、ファイル名にタイムスタンプが正しく付けられていないようです(具体的には、時間、分、秒)。

10
Pauk

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

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

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

必要なのはログローテーションです。

グーグルはウィンドウズのためのログローテーションツールに関するいくつかの魅力的なリンクをリストしているようです。

これはApache固有のソリューションのようですが、おそらくあなたを助けるでしょう:

http://www.sprint.net.au/~terbut/usefulbox/apachelogrot.htm

0
Karolis T.

で直接お試しください

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