【发布时间】:2013-06-04 06:54:43
【问题描述】:
我浪费了很多时间来解决这个问题。但不能。可能很简单。
应用的jar文件无法加载log4j的配置文件log4j.xml文件。
这是我正在使用的代码
import org.apache.log4j.xml.DOMConfigurator;
public class LoggerConfig {
public void configLogger()
{
DOMConfigurator.configure("log4j.xml");
}
}
这是一个 Maven 项目。我的目录结构是:
src
main
java
| com
| | my
| | | abc
| | | | test
| | | | | LoggerConfig.java
resource
| com
| | my
| | | abc
| | | | test
| | | | | log4j.xml
我的类路径文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
我的 log4j.xml 看起来像
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="file" class="org.apache.log4j.FileAppender">
<param name="File" value="target/test.log" />
<param name="Append" value="false" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p] [%d{HH:mm:ss.SSS}] %m%n" />
</layout>
</appender>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<param name="Threshold" value="DEBUG" />
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="[%p] [%d{HH:mm:ss.SSS}] %m%n" />
</layout>
</appender>
<root>
<priority value="INFO" />
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
</log4j:configuration>
感谢您的帮助..
【问题讨论】:
-
你
log4j.xml长什么样子? -
@Tichodroma:用
log4j.xml详细信息编辑了问题 -
您将 log4j.xml 文件放在
resources中的com/my/abc/test下的任何特定原因同样,当您加载它时,您使用test/log4j.xml加载它,而它应该是com/my/abc/test/log4j.xml? -
@Kal:我有问题地编辑了它。其实我都用过。没有一个有效。当我将 jar 放在不同的文件夹中并从那里运行它时,它不会工作。我将文件名更改为
com/my/abc.test/log4j.xml、log4j.xml等。
标签: java maven log4j filenotfoundexception