如何將apache日誌檔案按時間分隔儲存
apahce的日誌檔案一般預設為單一檔案。如果日誌資訊太多,編輯器就無法正常開啟了,也不能很好的檢視。
我們可以將日誌檔案按照天去劃分,每天儲存乙個新檔案。當然如果需要間隔更短或更長,比如按每小時儲存也是沒有問題的,具體就看每個人的需求了。
首先需要用到apache中的mod_log_config模組,具體可以檢視apache官網的介紹,如下:
httpd.conf配置修改
linux
errorlog "| /usr/bin/rotatelogs /var/log/example/error_%y_%m_%d_log 86400 480"
customlog "| /usr/bin/rotatelogs /var/log/example/access_%y_%m_%d_log 86400 480" common
windows
errorlog "|c:/apache/bin/rotatelogs.exe c:/apache/logs/error_%y_%m_%d.log 86400 480"
customlog "|c:/apache/bin/rotatelogs.exe c:/apache/logs/access_%y_%m_%d.log 86400 480" common
關於rotatelogs的寫法說明
rotatelogs logfile [ rotationtime [ offset ]] | [ filesizem ]選項
logfile
日誌檔名,如果logfile中包含』%',則它會被視為用於的strftime(3)的格式字串;否則,它會被自動加上以秒為單位 的.nnnnnnnnnn字尾。這兩種格式都表示新的日誌開始使用的時間。
[ rotationtime [ offset ]]
(即以時間間隔進行分隔)
rotationtime
日誌檔案回卷的以秒為單位的間隔時間
offset
相對於utc的時差的分鐘數。如果省略,則假定為0,並使用utc時間。國內一般就用480,+8時區。
[ filesizem ]
(即以檔案大小進行分隔)
filesizem
指定回卷時以兆位元組為單位的字尾字母m的檔案大小,而不是指定回卷時間或時差。
下列日誌檔案格式字串可以為所有的strftime(3)實現所支援,見各種擴充套件庫對應的strftime(3)的手冊。
%a 星期名全稱
%a 3個字元的星期名
%b 月份名的全稱
%b 3個字元的月份名
%c 日期和時間
%d 2位數的乙個月中的日期數
%h 2位數的小時數(24小時制)
%i 2位數的小時數(12小時制)
%j 3位數的一年中的日期數
%m 2位數的分鐘數
%m 2位數的月份數
%p am/pm 12小時制的上下午
%s 2位數的秒數
%u 2位數的一年中的星期數(星期天為一周的第一天)
%w 2位數的一年中的星期數(星期一為一周的第一天)
%w 1位數的星期幾(星期天為一周的第一天)
%x 時間
%x 日期
%y 4位數的年份
如何將Unicode文字寫到日誌檔案中
有時為了定位問題,我們需要結合列印日誌來處理。特別是較難復現的,一般都需要檢視上下文日誌才能找出可能存在的問題。考慮到程式要在不同語言的作業系統上執行,程式介面顯示要支援unicode,列印出來的日誌也要支援unicode,即將執行日誌以unicode文字寫到日誌檔案中。那麼如何才能將unicode...
如何將Unicode文字寫到日誌檔案中
有時為了定位問題,我們需要結合列印日誌來處理。特別是較難復現的,一般都需要檢視上下文日誌才能找出可能存在的問題。考慮到程式要在不同語言的作業系統上執行,程式介面顯示要支援unicode,列印出來的日誌也要支援unicode,即將執行日誌以unicode文字寫到日誌檔案中。那麼如何才能將unicode...
如何將syslogng的日誌寫入MySQL資料庫
在 使用syslog ng搭建日誌伺服器 中已經講了如何將syslog ng配置為中心日誌伺服器,下面介紹如何將syslogng的日誌寫入mysql資料庫,系統 gentoo 2007 1 修改 etc syslog ng syslog ng.conf,新增 source s remote dest...