即使我將它放在每個源文件夾中,或者使用-Dlogback.configurationFile=C:\Users\dell\Documents\Corr\conf\logback.xml
作爲程序參數或vm參數,我仍然無法使用logback.xml文件。但是,它沒有工作。爲什麼?爲什麼?配置logback失敗 - 爲什麼
我應該在哪裏放這個文件,以便它被檢測到?
我做了什麼;
logback.xml
<configuration>
<appender name ="FileAppender"
class="ch.qos.logback.core.FileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level> INFO </level>
<onMatch> ACCEPT </onMatch>
<onMismatch> DENY </onMismatch>
</filter>
<property file="conf/variables.properties" />
<file> ${HOME}/build/log/corr.log </file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>
${HOME}/build/log/%d{yyyy/MM/dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize> 2MB </maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>
%date{yyyy-MM-dd HH:mm:ss.SSS}
%level{5}
[%thread]
%class{0}.%method at %line
%msg
%n
%ex{full}
%n
</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FileAppender" />
</root>
</configuration>
屬性文件; variables.properties
HOME=C:\Users\dell\Documents\Corr
項目層次
Corr
| - - src
| - - CorrAnaly
| - - main.java
| - - testSrc
| - - build
| - - log
| - - bin
| - - conf
| - - logback.xml
| - - variables.properties
我哪裏有下的主要類項目的是在包(把logback.xml
- 直接src文件夾下
- 直接在main.java附近)
- Corr folder
所有這些都沒有工作。另外,我嘗試使用conf文件夾作爲源文件夾。我已經聲明它並使用它,但沒有奏效。
幫我弄清楚爲什麼logback沒有檢測到我的文件。我應該怎麼做才能使用Logback功能?
環境:Windows 7,Eclipse的靛藍
UPDATE
爲了運行應用程序,我使用;
- Eclipse中運行Java應用程序
- ivyDe解決依賴
我ivy.xml文件
<ivy-module version="2.0">
<configurations defaultconfmapping="runtime->compile">
<conf name="compile" />
<conf name="test" />
<conf name="runtime"
extends="compile" />
</configurations>
<dependencies>
<dependency org="SLF4J" name="slf4j-api-1.7.7" rev="1.7.7"
conf="compile->default"/>
<dependency org="LOGBack" name="logback-core-1.1.2" rev="1.1.2"
conf="runtime->default"/>
<dependency org="SLF4J" name="slf4j-jdk14-1.7.7" rev="1.7.7"
conf="runtime->default"/>
</dependencies>
</ivy-module>
更新2 我也試過用簡單的情況下logback.xml我的第一個配置不起作用。即使對於簡單的logback.xml情況它也沒有工作;
<appender name ="ConsoleAppender"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset> UTF-8 </charset>
<pattern>%-5level [%thread] %class{0}.%method at line %line --%message%n%ex</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="ConsoleAppender" />
</root>
更新3
從昨晚開始,我已經嘗試了一堆東西,最後在源代碼中,我可以從getClass().getResource("/logback/logback.xml").toURI().toString()
獲得不空的結果。但是,仍然會調用默認的logback.xml。
倉結構
bin
| - - Corr
| - - conf
| - - logback.xml
我已經在Eclipse的VM參數部(separatly和逐個)試圖-Dlogback.configurationFile=
;
- \ BIN \的logback \ logback.xml
- /bin/logback/logback.xml
- 倉\的logback \ logback.xml
- 斌/的logback/logback.xml
- \的logback \ logback.xml
- /logback/logback.xml
- 的logback \ logback.xml
- 的logback/logback.xml
- \ logback.xml
- /logback.xml
- logback.xml
- 〜\文件\科爾\建立\的logback \ logback.xml
- 〜/文檔/科爾/建造/的logback /的logback .xml
我的大腦:不記得錯誤;幫我!
您的.xml文件是否被複制到bin(或target)目錄中?你使用的是什麼構建系統?它不會在類路徑中,除非它與.class文件位於相同的目錄結構中。 – ccleve 2014-08-28 21:41:03
另外,給你完整的-Dlogback.configurationFile =值。 – ccleve 2014-08-28 21:41:48
@ccleve我怎麼能說eclipse將logback.xml複製到bin文件夾?不,它不會複製到bin目錄。 – Hevan 2014-08-28 21:42:44