Java知識積累——日誌組件:log4j、logback、common-logging

來源:互聯網
上載者:User

步入職場,才首次對“日誌”這個東西有了一個比較全面的認識。不像學生時代,隨處的print語句,學校總是教不了什麼有用的東西。

最近從事的工作,恰好是將工程中原有的log4j日誌組件轉換為logback。至於為什麼要轉換,本來是因為logback的效能要優於log4j,然而最新版本的log4j的降臨,似乎又把這段差距彌補了。總之分配的任務就要用心做,並且還能從中學好很多有用的東西。下面,我就介紹一下log4j轉換logback的方法,可能遇到的問題及解決方案。其中涉及到的jar包會在最後給出下載連結。

 

log4j切換到logback的步驟:

1.將logback-classic和logback-core的jar包引入到工程,將有關log4j的jar包從工程的classpath中移除。

2.確認工程引入了slf4j的jar包,作為日誌的適配。

3.在工程中建立logback.xml檔案,利用轉換工具(地址:http://logback.qos.ch/translator/),將原來log4j設定檔(log4j.properties)的內容拷貝到轉換工具中,轉換為logback的對應配置,然後將轉換後的內容存入logback.xml。

4.完成上述轉換後,因為參數含義不同,要修改一些細微的地方:

配置內容

logback

log4j

%c{}

{0}列印類名,例:MyLog

{n}列印類名和包名的首字母,例:c.b.u.MyLog

{0}列印全路徑類名,例:com.bs3.utils.MyLog

{1}列印類名,例:MyLog

{2}列印類名和上一層包名,例;utils.MyLog

{n}依此類推

記錄檔名稱樣式

<File>log/rpt.log</File>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

<fileNamePattern>log/rpt.log.%d{yyyyMMddHH}</fileNamePattern>

</rollingPolicy>

<!-- 去掉了'.' -->

log4j.appender.RPT.File        = log/rpt.log

log4j.appender.RPT.DatePattern    ='.'yyyyMMdd

5.將工程中,由於缺失了log4j.jar引起的錯誤進行修正,改為利用logback實現。

 

可能遇到的問題及解決方案:

1.Log4j轉換到logback後,運行後spring的日誌都以紅字輸出到控制台,而不受logback控制。

因為Spring的日誌預設採用commons-logging,解決方案是在工程中引入jcl-over-slf4j-1.6.1.jar,這樣就將commons-logging與slf4j對接,再通過logback進行了日誌的統一輸出。

2.切換完成後,啟動工程時會出現java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory這個錯誤。

原因是slf4j-api的jar包版本太低,改為slf4j-api-1.6.4.jar即可解決。

 

涉及到的jar包,下載連結:

http://pan.baidu.com/share/link?shareid=475873&uk=152821134

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.