1. 程式人生 > 實用技巧 >日誌處理(一)

日誌處理(一)

日誌處理(一)

標籤: 運維 開發

目錄

背景描述:

線上一臺伺服器突然無法服務,去伺服器上一看,tomcat見面上瘋狂列印錯誤日誌(windows伺服器)。同事一開始認為是日誌列印太頻繁佔用了系統資源,希望通過關閉日誌輸出來解決問題。(但是後來發現問題並不是列印日誌引發)看到組內的程式碼關於日誌的處理這麼浮誇,而我自己也在日誌的處理問題上吃了不少虧。決定深入的研究一下日誌問題。

1.目標

關於日誌處理,我有以下幾個問題需要弄清楚:

1.1log4j的詳細配置

我們的專案最常用log4j記錄日誌,以前都是抄別人的配置,現在我下定決心要弄清楚所有的配置。

有以下幾點比較重要的配置方式:

  • 定期回滾日誌檔案

簡單易用,便於查詢。注意設定大小,監控磁碟空間是否夠用。

  • socket

統一採集日誌。(我沒用過,我擔心佔用過多系統資源)

  • 自定義appender

根據業務,將日誌記錄到不同的路徑。

Log4J日誌整合及配置詳解

1.2tomcat日誌調整

開啟tomcat下的startup.shstartup.bat。裡面都是在呼叫catalina.shcatalina.bat

開啟catalina.bat,看到日誌的相關配置:

rem   LOGGING_CONFIG  (Optional) Override Tomcat's logging config file
rem                   Example (all one line)
rem                   set LOGGING_CONFIG="-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties"
rem
rem   LOGGING_MANAGER (Optional) Override Tomcat's logging manager
rem                   Example (all one line)
rem                   set LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
rem
rem   TITLE           (Optional) Specify the title of Tomcat window. The default
rem                   TITLE is Tomcat if it's not specified.
rem                   Example (all one line)
rem                   set TITLE=Tomcat.Cluster#1.Server#1 [%DATE% %TIME%]
rem ---------------------------------------------------------------------------

我們就知道了tomcat使用的日誌類和配置檔案的路徑。

然後隨便搜搜你就知道該如何配置了。

我覺得tomcat的日誌就該全關了。

如果服務是部署在linux上,還可以修改catalina.sh,將日誌路徑指向null。

1.3提高日誌效能

LOG4J效能優化
log4j日誌輸出效能優化

高併發下log4j的效能瓶頸

LOG4J日誌效能建議