Spring整合log4j日誌元件
Log4j是Apache的一個開放原始碼專案,通過使用Log4j,控制日誌資訊輸送的目的地可以為控制檯、檔案、資料庫、GUI元件、甚至是套介面伺服器、NT的事件記錄器、UNIX Syslog守護程序等;可以控制每一條日誌的資訊內容和資訊輸出格式;通過定義每一條日誌資訊的級別,我們能夠更加細緻地控制日誌的生成過程;甚至還可以在不需要修改業務邏輯程式碼、重啟web服務,只需要通過一個修改配置檔案就可以實現控制專案的日誌動作。
首先,日誌的級別有:OFF 、FATAL 、ERROR、WARN、INFO、DEBUG、TRACE 、ALL 等等。
log4j提供了一系列的Appender,允許將日誌輸送到不同的地方,如控制檯、檔案、資料庫等:
結合日誌的級別,可以將不同級別的日誌資訊輸送到不同的位置作為記錄或者事後查詢問題作為依據。一般的資訊可以通過檔案或者資料庫的形式儲存,錯誤資訊可以傳送郵件給相關的負責人或者發簡訊報警給相關的負責人,這些在log4j看來輕鬆搞定。此刻,已經覺得Java輕鬆做掉了PHP需要花費大量工作才能搞定的事情。
關於log4j的配置引數請參考網上的資料,下面就簡單的講解如何在Spring框架中整合log4j作為日誌的操作元件來服務專案吧:
-
pom.xml 引入log4j元件依賴包:
-
web.xml裡邊配置servlet容器啟動時,自動載入log4j配置並注入元件:
這裡,我將log4j.properties配置檔案存放到classpath的conf目錄下,並啟動一個watchdog執行緒每5秒掃描配置檔案的變化,重新調整日誌的策略,實現在不調整邏輯程式碼即可實現日誌的策略變更。通過log4j.properties詳細配置了日誌的策略,如下:
通過以上配置,在專案啟動的時候,會將DEBUG日誌資訊傳送到控制檯和檔案日誌中。
最後,可以在應用程式中採用log4j自帶的debug()、info()、warn()、error()方法來記錄你想要記錄的操作,至於如何儲存日誌及日誌的目的地傳送的工作就交給log4j好了。
最後一點說明的問題:配置較低級別的錯誤日誌策略會記錄高階的錯誤資訊,配置高階的錯誤日誌策略會忽略低階錯誤資訊。如將錯誤日誌的level配置為debug,則log4j元件會記錄包含debug以上所有的級別日誌如debug、info、warn、error、fatal等。加入你配置的為error級別,則不會記錄error以下級別的日誌資訊如debug、info、warn等等。
原文釋出時間為:2018-11-1
本文作者:小白教程