即使我将它放在每个源文件夹中,或者使用-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