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

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

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

    Sky's blog

    我和我追逐的夢

    常用鏈接

    統計

    其他鏈接

    友情鏈接

    最新評論

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

        今天,嘗試使用slf4j + logback的黃金組合,結果發現有點問題,slf4j和logback的最新版本不兼容。當然slf4j是1.6.0-RC0,正式發布時logback應該會跟進發布新的版本吧。

        使用的版本如下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 中沒有logback期望調用的一個方法。

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


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

    主站蜘蛛池模板: 免费无码毛片一区二区APP| 羞羞漫画小舞被黄漫免费| 国产在线精品观看免费观看| 亚洲A∨精品一区二区三区| 亚洲国产成人久久精品大牛影视 | 中国china体内裑精亚洲日本| 59pao成国产成视频永久免费| 亚洲精品日韩专区silk| 99久久人妻精品免费一区| 精品日韩亚洲AV无码| 两性刺激生活片免费视频| 中文字幕亚洲综合久久综合 | 国产成人1024精品免费| 一本色道久久综合亚洲精品| 国产99久久久国产精免费| 亚洲精品无码MV在线观看| 国产精品网站在线观看免费传媒 | 亚洲一级高清在线中文字幕| 69堂人成无码免费视频果冻传媒| 亚洲中文字幕一区精品自拍| 午夜寂寞在线一级观看免费| 视频免费1区二区三区| 久久亚洲综合色一区二区三区| 99热在线精品免费播放6| 亚洲五月丁香综合视频| 国产一区二区视频免费| a视频在线观看免费| 亚洲一区二区三区在线观看蜜桃 | 亚洲香蕉网久久综合影视| 久久免费福利视频| 亚洲综合一区国产精品| 国产一区二区三区在线免费 | aa毛片免费全部播放完整| 久久青青草原亚洲AV无码麻豆| 在线a级毛片免费视频| 瑟瑟网站免费网站入口| 久久精品国产精品亚洲艾草网| 最近中文字幕免费mv视频7| www免费黄色网| 亚洲伦理中文字幕| 亚洲中文无韩国r级电影|