<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sky's blog

    我和我追逐的夢

    常用鏈接

    統(tǒng)計

    其他鏈接

    友情鏈接

    最新評論

    slf4j1.6.0-RC0和logback的0.9.20版本不兼容

        今天,嘗試使用slf4j + logback的黃金組合,結(jié)果發(fā)現(xiàn)有點問題,slf4j和logback的最新版本不兼容。當(dāng)然slf4j是1.6.0-RC0,正式發(fā)布時logback應(yīng)該會跟進(jìn)發(fā)布新的版本吧。

        使用的版本如下ivy文件所示:

            <dependency org="org.slf4j" name="slf4j-api" rev="1.6.0-RC0"
                conf
    ="compile -> master" />
            
    <dependency org="ch.qos.logback" name="logback-classic"
                rev
    ="0.9.20" conf="runtime -> master" />
            
    <dependency org="ch.qos.logback" name="logback-core" rev="0.9.20"
                conf
    ="runtime -> master" />

        slf4j是最新的1.6.0-RC0,logback也是最新的0.9.20。

        測試代碼如下:

            Logger logger 
    = LoggerFactory.getLogger(HelloWorld.class);
            logger.info(
    "Hello World");

            
    // placeholder
            logger.info("test placeholder:  param1 = {}, param = {}"100200);

        運行后日志如下:


            
    08:21:19.812 [main] INFO  test.example1.HelloWorld - Hello World
    Exception in thread 
    "main" java.lang.NoSuchMethodError:

    org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava
    /lang/String;[Ljava/lang/Object;)

    Ljava
    /lang/String;
        at ch.qos.logback.classic.spi.LoggingEvent.getFormattedMessage(LoggingEvent.java:
    288)
        at ch.qos.logback.classic.spi.LoggingEvent.prepareForDeferredProcessing

    (LoggingEvent.java:
    196)
        at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:
    211)
        at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:
    108)
        at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend

    (UnsynchronizedAppenderBase.java:
    91)
        at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders

    (AppenderAttachableImpl.java:
    64)
        at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:
    275)
        at ch.qos.logback.classic.Logger.callAppenders(Logger.java:
    262)
        at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:
    465)
        at ch.qos.logback.classic.Logger.filterAndLog_2(Logger.java:
    456)
        at ch.qos.logback.classic.Logger.info(Logger.java:
    631)
        at test.example1.HelloWorld.main(HelloWorld.java:
    14)

        可以看到第一個普通的"logger.info("Hello World");"語句打印正常,但是第二個使用了slf4j的placeholder特性的info語句遭遇異常:類org.slf4j.helpers.MessageFormatter 中沒有l(wèi)ogback期望調(diào)用的一個方法。

         猜測是slf4j新的1.6.0-RC0版本對類MessageFormatter 做了調(diào)整,而原有調(diào)用它的logback 0.9.20版本還沒有更新。試著更改ivy設(shè)置為:

    <dependency org="ch.qos.logback" name="logback-classic"
                rev
    ="0.9.20" conf="runtime -> *" />

        讓ivy自動將logback 0.9.20的依賴搞定,resolve成功后發(fā)現(xiàn)果然0.9.20是使用slf4j的1.5.11版本。運行上面的代碼,成功不再報錯:

    08:37:00.562 [main] INFO  test.example1.HelloWorld - Hello World
    08:37:00.578 [main] INFO  test.example1.HelloWorld - test placeholder:  param1 = 100, param = 200

        看來暫時還不能使用slf4j 1.6.0-RC0 + logback 0.9.20的組合了,看了一下logback的網(wǎng)站,沒有發(fā)現(xiàn)新的測試版本,只能退回到slf4j 1.5.11 + logback 0.9.20。等slf4j 1.6.0 release之后,logback 應(yīng)該會發(fā)布新的版本吧。小小的鄙視一下logback,作為嚴(yán)重依賴slf4j的項目,居然不及時跟進(jìn)。我測試過log4j的版本在新的1.6.0-RC0就沒有出現(xiàn)類似問題。


    posted on 2010-04-26 08:54 sky ao 閱讀(3068) 評論(0)  編輯  收藏 所屬分類: java

    主站蜘蛛池模板: 国产91在线免费| 四虎在线播放免费永久视频| 国产亚洲精品无码专区| 黄色网址在线免费观看| 免费jjzz在在线播放国产| 色偷偷亚洲男人天堂| 国产精品免费播放| 国产尤物在线视精品在亚洲| 国产性生交xxxxx免费| 国产亚洲成在线播放va| 亚洲av无码不卡私人影院| 免费国产高清毛不卡片基地| 亚洲а∨天堂久久精品| www免费插插视频| 久久亚洲精品成人| 亚洲黄色片免费看| 亚洲一区二区三区高清在线观看 | 男女猛烈激情xx00免费视频| 国产网站在线免费观看| 黄色一级免费网站| 亚洲美女又黄又爽在线观看| 久9久9精品免费观看| 亚洲日产2021三区| 免费观看美女裸体网站| 九九免费久久这里有精品23| 亚洲精品你懂的在线观看| 99精品一区二区免费视频| 在线综合亚洲欧洲综合网站| 一本色道久久88综合亚洲精品高清| jizz日本免费| 亚洲人成免费电影| 免费欧洲美女牲交视频| 国产午夜免费高清久久影院| 在线观看亚洲AV每日更新无码| 亚洲高清最新av网站| 十八禁无码免费网站| 亚洲国产成人久久精品大牛影视 | 亚洲狠狠婷婷综合久久久久| 99视频全部免费精品全部四虎 | 亚洲国产精品成人精品无码区在线| 2015日韩永久免费视频播放|