2015-11-21 48 views
0

我有一個eclipse maven項目,其中我嘗試使用logback.xml。但logback.xml沒有被選中。我已經通過這個link並驗證logback.xml被放置在src/main/resources/ &它是在我的classpath中。在Eclipse Maven項目中使用sl4j配置Logback

logback.xml看起來象下面這樣: -

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
    </encoder> 
    </appender> 
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- Daily rollover --> 
     <fileNamePattern>/tmp/SolrUpdater.%d{yyyy-MM-dd}.log</fileNamePattern> 
     <!-- Keep 7 days' worth of history --> 
     <maxHistory>7</maxHistory> 
    </rollingPolicy> 
    <encoder> 
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
    </encoder> 
    </appender> 
    <root> 
    <level value="INFO" /> 
    <appender-ref ref="CONSOLE" /> 
    <appender-ref ref="FILE" /> 
    </root> 
</configuration> 

Maven依賴看起來象下面這樣: -

<?xml version="1.0" encoding="UTF-8"?> 
<dependencies> 
    <dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.7.13</version> 
    </dependency> 
    <dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-jdk14</artifactId> 
    <version>1.7.13</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.solr</groupId> 
    <artifactId>solr-solrj</artifactId> 
    <version>5.2.1</version> 
    </dependency> 
    <dependency> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.2</version> 
    </dependency> 
    <dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <version>1.0.13</version> 
    </dependency> 
    <dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-core</artifactId> 
    <version>1.0.13</version> 
    </dependency> 
</dependencies> 

我也已經驗證了src/main/resource被標記爲在Eclipse資源目錄,如下圖所示: - enter image description here

有人能告訴我發生了什麼問題嗎?

回答

1

您不能同時使用兩個日誌記錄後端。您應該看到有關類路徑上的多個SLF4J實現的運行時警告。

slf4j-jdk14在您的依賴列表中位於logback-classic之前,因此所有日誌消息都會路由到java.util.logging後端,並且您的Logback配置根本沒有任何作用。

刪除slf4j-jdk14依賴關係,並確保您沒有任何其他SLF4J後端作爲傳遞依賴關係。

0

很可能src/main/resources沒有被eclipse識別爲資源目錄,需要一些刷新或動作來做到這一點。

您是否檢查該目錄在項目配置中是否標記爲資源目錄?

+0

是的。我編輯了這個問題以包含細節。 – tuk