使用NetBeans时未看到Log4j2.xml文件

时间:2013-02-18 04:17:36

标签: netbeans log4j log4j2

我在运行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>

2 个答案:

答案 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文件夹移动到编译时库的顶部。

感谢您的帖子和回答自己。