<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的黃金組合,結果發(fā)現(xiàn)有點問題,slf4j和logback的最新版本不兼容。當然slf4j是1.6.0-RC0,正式發(fā)布時logback應該會跟進發(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期望調用的一個方法。

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

    <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的網站,沒有發(fā)現(xiàn)新的測試版本,只能退回到slf4j 1.5.11 + logback 0.9.20。等slf4j 1.6.0 release之后,logback 應該會發(fā)布新的版本吧。小小的鄙視一下logback,作為嚴重依賴slf4j的項目,居然不及時跟進。我測試過log4j的版本在新的1.6.0-RC0就沒有出現(xiàn)類似問題。


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

    主站蜘蛛池模板: 亚洲人成网77777亚洲色| 鲁大师在线影院免费观看| 成人黄18免费视频| 77777亚洲午夜久久多喷| 一色屋成人免费精品网站| 亚洲国产精品久久网午夜| 2021在线永久免费视频| 亚洲精品中文字幕乱码| 在线视频免费观看高清| 亚洲一区二区观看播放| 国产高清在线免费| 一道本不卡免费视频| 精品亚洲视频在线观看| a级精品九九九大片免费看| 精品亚洲综合在线第一区| 久9久9精品免费观看| 亚洲精品在线播放视频| 好爽又高潮了毛片免费下载| 羞羞视频免费网站含羞草| 亚洲伊人成无码综合网 | 四虎精品免费永久免费视频| 亚洲五月午夜免费在线视频| 中文字幕av无码不卡免费| 91亚洲导航深夜福利| 成年男女免费视频网站| 午夜免费国产体验区免费的 | 亚洲色偷偷偷网站色偷一区| 亚洲人成电影网站免费| 草久免费在线观看网站| 久久精品国产精品亚洲艾草网| 思思re热免费精品视频66| 国产成人高清亚洲一区久久| 亚洲国产日韩在线视频| 无人在线直播免费观看| 天堂亚洲免费视频| 一区二区三区亚洲| 国产极品粉嫩泬免费观看| 黄色免费在线网站| 亚洲真人无码永久在线观看| 亚洲中文字幕伊人久久无码| 999国内精品永久免费观看|