如何將Apache日誌檔案按時間分隔儲存

2021-08-13 10:09:39 字數 1630 閱讀 9959

如何將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...