2009-07-16 59 views
3

我試圖讓Apache根據當前日期每天創建一個新的錯誤日誌文件。 默認的錯誤日誌文件名是這樣的: 錯誤日誌「/logs/error.log」在apache中設置錯誤日誌文件名以包含當前日期

,我希望它是這樣的: 錯誤日誌「/logs/error_$year$month$day.log」

任何想法?

+0

哪個操作系統? – 2009-07-16 10:55:31

回答

1

看看Cronolog

的cronolog是一個簡單的過濾程序 從 標準輸入讀取日誌文件條目,並寫入每個條目 由一個 文件名模板中指定輸出文件和當前日期 和時間。當擴展文件名 更改時,當前文件將關閉 並打開一個新文件。 cronolog是 打算與 一起使用與Web服務器,如Apache, 將訪問日誌拆分爲每日或 每月日誌。

+0

謝謝,我會嘗試這種方法。我同時在apache.org文檔中看到,這可能是要走的路。 – 2009-07-16 13:22:35

0

我的辦法是配置logrotate的爲Apache旋轉Apache的日誌,每天再一次..

有關每個日誌行,而不是具有自定義日誌的最新信息:

%...{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 

所以:

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

%{%Y%M%d}牛逼沒有工作

+0

這是否記錄了文件名或記錄的實際消息? – 2009-07-16 11:07:29

0

更改這個在httpd.conf

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

此配置將旋轉錯誤日誌文件大小達到5兆字節時,日誌文件名稱的後綴將以errorlog.YYYY-mm-dd-HH_MM_SS格式創建。