2015-09-03 58 views
2

我在JAR之外創建日誌文件時遇到問題。如何在JAR之外使用logback.xml創建日誌文件?

Project Structure 

./ – the root of my project 
|__ api.jar (logback.xml inside this jar) 
|__ /logs 
    |__ (log files need to be generated) 

我在logback.xml中有以下配置。

<configuration> 
<appender name="FILE" 
    class="ch.qos.logback.core.rolling.RollingFileAppender"> 

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- daily rollover --> 
     <fileNamePattern>./logs/filename.%d{yyyy-MM-dd}.%i.log 
     </fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy 
      class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>5MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
     <!-- keep 30 days' worth of history --> 
     <maxHistory>30</maxHistory> 
    </rollingPolicy> 

    <append>true</append> 
    <encoder> 
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 
     </pattern> 
    </encoder> 
</appender> 
</configuration> 

日誌文件不是在我的項目根文件夾下的日誌文件夾內生成的。

在此先感謝...

+0

你有沒有試過簡單地把它放在與api.jar相同的文件夾中而不是在jar中?在我看來,把它放在罐子裏並不太合理 - 你將無法在運行時編輯它... – Fildor

+0

感謝您的寶貴意見。我只是不需要在運行時編輯logback.xml。讓我試試,我會回來。 –

+0

你如何運行你的應用程序?它可能在您正在運行的文件夾中生成。 – Koby

回答

0

我只是想和你張貼的例子運行我的程序,它產生的日誌中的所有權利。如何在您的案例中出錯,有很多方法。我有一些建議。

  • 您確定您正在從您的項目根目錄運行您的應用程序嗎?如果沒有,日誌文件將在別處創建。

你對你的classpath有什麼建議?

  • 如果在類路徑的任何位置有logback.groovy或logback-test.xml,它將優先,您的logback.xml將被忽略。

  • 與另一個早於您的logback.xml相同。