【发布时间】:2016-09-18 15:33:32
【问题描述】:
我正在尝试将commons-logging.properties 添加到commons-logging.1.1.3.jar 拾取的类路径中,默认情况下使用JDK14Logger,然后打印DEBUG 日志。
当我在 /src 文件夹(一个普通的 Java 项目)下添加这个时,它在 Run As -> Java Application 时被拾取。
但是,对于一个 Maven 项目,我尝试将这个文件放在项目根目录下的不同位置“src/main/java”、“src/main/resources”。 Run As -> Java Application 时没有考虑。
仅当通过如下 VM 参数明确指定时,才会获取日志配置文件:
-Djava.util.logging.config.file=C:\ws-learning\spring-tutorial-5\commons-logging.properties
什么是 Maven 项目的类路径?
我应该把要提取的配置文件放在哪里?
为什么 src/ 和 src/main/java 在类路径方面表现不同?
更新:
只打印“INFO”级别的消息。我没有看到“FINE”级别的消息
handlers=java.util.logging.ConsoleHandler,java.util.logging.FileHandler
.level=SEVERE
org.springframework.level=FINE
java.util.logging.ConsoleHandler.level=ALL
java.util.logging.FileHandler.level=FINE
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
更新 2:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
【问题讨论】:
-
"src/main/resources" 是在不太了解公共日志记录的情况下应该工作的路径。
-
@mm759 请看我的更新。仅打印“INFO”。如果它考虑了日志配置文件,它应该已经打印了“FINE”级别的消息。
-
我不知道更新 2 中的文件类型,但排除项看起来很奇怪。您可以在 Eclipse 中右键单击项目并查看“构建路径”。应该包括“src/main/resources”。
标签: java eclipse maven logging apache-commons-logging