Windows

如何在 Apache(適用於 Windows)上獲得每日錯誤和訪問日誌?

  • November 10, 2015

我們正在執行 Apache 2.2.9 (Win32),在一台伺服器上配置了一些虛擬主機。每個都有自己的 ErrorLog 和 CustomLog 設置,格式為“logs/

$$ domain name $$-error.log”和“日誌/$$ domain name $$-access.log”。不幸的是,這些現在正在創建相當大的文件。 在 IIS 上,您可以指定日誌計劃,可以將它們以“yymmdd.log”的每日格式放置。我可以在這裡做類似的事情嗎?

它也不必每天,每週或每月都可以。我只想將它們分解,以便我們可以保留 X 數量而不是它曾經記錄的所有內容。一個快速的Google似乎提出了許多面向 Linux 的答案,涉及日誌拆分器、腳本和 cron 作業,這對 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 時,他們將創建一個新的日誌文件。我知道這不是每天要求的,但這可以使它們保持在可管理的大小。我確實在這麼多秒後嘗試了旋轉,但它似乎沒有正確地將時間戳記在文件名中(特別是小時、分鐘和秒)。

您正在尋找的是 apache http://httpd.apache.org/docs/2.2/programs/rotatelogs.html附帶的 rotatelogs 程序

例如,要在每天午夜輪換日誌:

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

您想要的稱為日誌輪換。

Google似乎列出了一些關於 Windows 日誌輪換工具的相關連結。

這似乎是一個 Apache 特定的解決方案,也許它會幫助你:

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

引用自:https://serverfault.com/questions/27119