2014-06-09 83 views
0

我有一個應用程序在生產中運行。我們在哪裏創建日誌文件。日誌文件的最大數量設置爲10,最大調試寫入設置爲某個值,以便當日誌文件變爲6MB時創建一個新的日誌文件。存儲應用程序日誌一天

因此,我們使用文件名如: -

<file_name>.log 
<file_name>.log.1 
<file_name>.log.2 
... 
<file_name>.log.10 

我的問題是什麼,只有記錄爲15分鐘可以在這些10個日誌文件被發現。 我知道我可以更新我的代碼庫使用DailyRollingFileAppender。但是我正在尋找的是一種短期解決方案,可以將日誌存儲一天,以便無需任何代碼更改或最少的代碼/配置更改即可完成。例如,可能我可以通過一些cron作業或linux命令實現此目的。等等。

注意: - 我正在生產Linux OS上運行此應用程序。

任何快速幫助,高度讚賞。

〜感謝

+0

'將日誌文件的最大數量設置爲10,並將最大調試寫入設置爲某個值,以便日誌文件變爲6MB時創建新的日誌文件。那麼你之後做了什麼?意思是它會覆蓋舊的日誌形式新的? –

+0

是的!明顯。翻轉會更合適,然後覆蓋。當文件達到最大配置大小時記錄翻轉。將新日誌寫入 .log文件。隨着文件大小的增加,它的內容被轉移到* .log.1 ... * .log.10文件中......簡單地說,舊內容被刪除並且新內容被翻轉。 –

回答

1

你可以做到這一點創建一個shell腳本並添加它來cron作業。

NOW_DATE=$(date +"%m-%d-%Y-%H-%M") 
cd /var/log/OLD_LOGS 
mkdir /var/log/OLD_LOGS/$NOW_DATE 

cd /var/log/ 
mv server.log.* /var/log/OLD_LOGS/$NOW_DATE/ 
mv *.zip /var/log/OLD_LOGS/$NOW_DATE/ 
cp server.log /var/log/OLD_LOGS/$NOW_DATE/ 

cd /var/log/OLD_LOGS/$NOW_DATE 
x=$(ls -l |wc -l) 
if [ $x -le 1 ] then 
SUBJECT="There is an issue with generating server log - less number of files" 
EMAIL="[email protected]" 
EMAILMESSAGE="/tmp/errormsg.txt" 

/bin/mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSAGE 
fi 

cd /var/log/OLD_LOGS/ 
zip -r $NOW_DATE.zip $NOW_DATE 
rm -r -f $NOW_DATE 

find /var/log/ -type f -mtime +180 -exec rm {} \; 
0

如果應用程序試圖創建.log.11,如果它會覆蓋舊的按腳本的條件,不存在有一天日誌的可能性。 我的理解是應用程序日誌記錄非常類似於所有10個文件都有最近15分鐘的日誌記錄,並且新行再次被覆蓋。

應該修改應用程序邏輯以確保它捕獲日誌。另外,請確保定期壓縮文件,以便節省一些磁盤空間。

相關問題