我在运行Java 1.7.0_13 / 64的Windows7 / 64机箱上看到我的logj2.xml时出现问题。我正在尝试通过调试器使用NetBeans / 64 7.2.1 IDE运行该应用程序。
log4j2.xml位于我的r:\目录中。 (用户)类路径是“.; r:\”。它显然没有被看到,因为当我在调试器中查看Logger的'config.config.name'时,它给出了'Default'的值。此外,我找不到log4j2.xml文件中指定的文件,位于我的计算机的任何驱动器上。我还在我的机器上查找了包含“default”一词的任何新文件,并且找不到任何当前的文件。
所以我怀疑我做错了两件事之一:
1)错误地设置我的类路径。 2)错误地将我的log4j2.xml文件放在一起。
任何帮助将不胜感激。我的钥匙因用额头敲打而变得粘稠。
这是配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="debug" name="xxx" packages="" >
<appenders>
<RollingFile name="log" fileName="qqq.log"
immediateFlush="true" filePattern="qqq-%d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>"%d{YYYY-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %n%msg%n%n%n"</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy max="92"/>
</RollingFile>
</appenders>
<loggers>
<root level="trace">
<appender-ref ref="log"/>
</root>
</loggers>
</configuration>
答案 0 :(得分:1)
好的,明白了。我已将此问题重命名为包含NetBeans,因为这是我的问题的主旨。
作为评论,需要将log4j2.xml文件放在类路径上。虽然我可以通过向项目中添加jar文件来影响netbeans中的类路径,但我最初并没有考虑在类路径上查找配置文件。无论如何,一旦我意识到这一点,我在项目属性中玩了一下,最后发现只需将文件夹添加到'Compile-time libraries'对话框(在本例中为“r:\”)就可以将配置文件放在classpath,我的日志记录就像它应该的那样。
呼!
希望这有助于某人。
答案 1 :(得分:1)
感谢joe7pak,您的帖子是解决NetBeans中我的log4j属性问题的最后一个难题。我的问题需要一些额外的步骤来帮助解决这个问题。
首先,我使用http://wiki.apache.org/logging-log4j/Log4jXmlFormat中的默认xml在src目录中创建了一个log4j.xml文件。
然后,我将Properties \ Run中的NetBeans VM选项设置为:-Dlog4j.debug
。我注意到默认情况下加载了一个jar(httpbuilder)log4j.xml文件,而不是我的。
所以我使用你的推荐将src文件夹添加到Properties \ Libraries中的编译时库。但是,它仍然从jar中加载log4j.xml文件。
最后一步是将src文件夹移动到编译时库的顶部。
感谢您的帖子和回答自己。