利用 Spring 與 Log4J 巧妙地進行動態日誌配置切換並立即生效
引言:
在開發與生產環境中,我們有時候需要對日誌的配置進行動態切換,要調試、監控和檢查係統的運行時信息。 一般有兩種方法
1、通過 Spring 的 Log4jConfigListener 在啟動時開啟定時器進行定時加載配置文件
2、通過 JMX 動態控製
以上可以從我的《利用Spring來管理控製自己的應用程序》專題演講資料中獲取到更加詳細的信息,包括示例的源程序,地址為
https://yulimin.javaeye.com/blog/52354
先說一下上麵兩種方法的不同與缺點:
1、通過 Spring 的 Log4jConfigListener,則必須在後台打開線程,現定時掃描,然後來定時工作,有點浪費;
2、通過 JMX 動態控製的則必須供一個管理的端口,不僅有可能端口被占用(當然有個 workaround 來解決它),還有存在防火牆等等需要配置這個管理端口進行對外暴露等等。
雖然上述兩種方法存在著一些不足,但是這兩種方法在特定的場合下,都可以很好地來利用它進行完美地工作。
現在,利用它進行封裝與擴展,我們可以巧妙地進行定製,並通過 Web Console 界麵來更方便地進行動態切換配置信息,而且不需要重新啟動正在運行中的應用程序。
文章發表於中國IT實驗室,全文請見:
https://java.chinaitlab.com/Spring/749699.html
文中代碼下載在這裏提供下載:
https://yulimin.javaeye.com/blog/200620
最後更新:2017-04-02 00:06:29