0

我在运行 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 文件中指定的文件。我还在我的机器上查找了包含“默认”一词的任何新文件,但找不到任何最新的文件。

所以我怀疑我做错了两件事之一:

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>
4

2 回答 2

1

好的,我知道了。我已将此问题重命名为包括 NetBeans,因为这是我的问题的要点。

回顾一下,log4j2.xml 文件需要放在类路径上。虽然我可以通过将 jar 文件添加到项目中来影响 netbeans 中的类路径,但我最初并没有考虑在类路径中查找配置文件。无论如何,一旦我意识到这一点,我就在项目属性中玩了一下,最后发现只需将文件夹添加到“编译时库”对话框(在本例中为“r:\”)即可将配置文件放在类路径,我的日志记录就像它应该的那样工作。

哇!

希望这可以帮助某人。

于 2013-02-20T00:25:01.050 回答
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 文件夹移动到编译时库的顶部。

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

于 2013-04-17T13:50:11.143 回答