2011-03-16 45 views
5

正如標題所述,我使用Maven和Jetty。使用SLF4J和Logback進行日誌記錄。我在'src/main/resources'有'logback.xml'。使用slf4j和'logback'進行日誌記錄,但不能創建配置中的指定日誌文件。 (使用maven,碼頭)

<configuration> 
     <appender name="STDOUT" 
       class="ch.qos.logback.core.ConsoleAppender"> 
      <layout class="ch.qos.logback.classic.PatternLayout"> 
       <pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern> 
      </layout> 
     </appender> 

     <appender name="FILE" 
      class="ch.qos.logback.core.FileAppender"> 
      <layout class="ch.qos.logback.classic.PatternLayout"> 
       <pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern> 
      </layout> 
      <File>myLog.log</File> 
     </appender> 

     <logger name="org.mortbay"> 
      <level value="debug" /> 
     </logger> 

     <root> 
      <level value="error" /> 
      <appender-ref ref="STDOUT" /> 
      <appender-ref ref="FILE" /> 
     </root> 
</configuration> 

但我的問題是,如果我運行/調試項目,它不創建文件'myLog.log'。獲取日誌文件的解決方案是什麼?

有沒有什麼辦法只用SLF4J獲取日誌文件?

+0

如果您使用''而不是'',它有什麼區別嗎? – Raghuram 2011-03-16 12:26:44

+0

@Raghuram,也試過使用,但沒用。 – Jessu 2011-03-16 12:32:01

回答

10

對不起!我誤解了'Logback'的用法。我的解決方案,從http://www.mail-archive.com/[email protected]/msg00661.html

看來,你誤會 SLF4J的目的。如果您將 slf4j-jdk14-1.5.6.jar放入slf4j-api 中,它們將與java.util.logging綁定。 Logback將不會被使用。只有當您的 將logback-core.jar和 logback-classic.jar放置在您的課程路徑 (但不是slf4j-jdk14-1.5.6.jar)時,將會有 SLF4J API與logback綁定。 SLF4J 與一個並且僅有一個基本的 日誌API(每個JVM啓動)綁定。

HTH,

感謝Ceki Gulcu。現在我可以在我的文件中獲得日誌。

0

如果您使用的是JBoss 5.1,並且遇到同樣的問題[logback不寫入文件],請在jboss-web.xml中添加以下內容。

<class-loading> 
    <loader-repository> 
     com.hp:classloader=logback-slf4j 
     <loader-repository-config>java2ParentDelegation=false</loader-repository-config> 
    </loader-repository> 
</class-loading> 

這應該可以解決您的問題。

相關問題