java - log4j 在 Netbeans 中使用不正确的属性文件

标签 java logging netbeans properties log4j

我在桌面应用程序中使用 log4j。

通常这可以顺利进行。然而最近,Netbeans 停止了日志记录(而 Eclipse 和 Netbeans 本身构建的 jar 日志记录都很好)。

使用 log4j 的 Debug模式,我仅在 Netbeans 中使用了错误的属性文件来追踪 log4j 的原因。由于某种原因,它没有使用源文件夹中提供的文件,而是使用依赖项内部的属性文件。

再次强调:这只发生在 Netbeans 中。有谁知道如何将 log4j 指向正确的文件? 到底为什么会发生这种情况?

编辑:我现在手动向 log4j 提供正确的属性文件,尽管我仍然想知道 Netbeans 奇怪优先级的原因。

最佳答案

文件log4j.xml有更多prioritylog4j.properties

103      // if the user has not specified the log4j.configuration
104      // property, we search first for the file "log4j.xml" and then
105      // "log4j.properties"

因此,您需要将当前的属性文件转换为 XML 样式文件。例如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" 
                                     "log4j.dtd" >
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

  <!-- console -->
  <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <param name="threshold" value="TRACE" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="conversionPattern"
        value="%d{yyyyMMdd-HHmmss.SSS} %-5p (%c.java:%L).%M - %m%n" />
    </layout>
  </appender>

  <!-- file -->
  <appender name="ROLLOUT" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="/tmp/output.log" />
    <param name="maxFileSize" value="1MB" />
    <param name="maxBackupIndex" value="5" />
    <param name="threshold" value="DEBUG" />
    <param name="encoding" value="UTF-8" />
    <layout class="org.apache.log4j.PatternLayout">
      <param name="conversionPattern" 
           value="%d{yyyyMMdd-HHmmss.SSS} %-5p (%c.java:%L).%M - %m%n" />
    </layout>
  </appender>

  <!-- categories -->
  <category name="org.apache.commons">
    <priority value="OFF" />
  </category>
  <category name="org.hibernate">
    <priority value="OFF" />
  </category>

  <!-- root -->
  <root>
    <priority value="TRACE" />
    <appender-ref ref="STDOUT" />
    <appender-ref ref="ROLLOUT" />
  </root>

</log4j:configuration>

关于java - log4j 在 Netbeans 中使用不正确的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24761868/

相关文章:

java - 在 Retrofit 2 日志记录中过滤敏感 json 字段

jakarta-ee - 了解 Glassfish 控制台 JNDI 输出

java - 我似乎无法将 Java 库添加到 Apache Netbeans 11.3

java - 连接 4 检查获胜算法

java - JTable 和排序

java - java面试问题有什么好的资源吗?

java - ArrayList 或 Linkedlist 哪个更适合实现中位数算法?

macos - AppleScript 编辑器,将消息写入 "Result"窗口

Python/django 日志记录权限错误

java - Java 中有用于哈希的 hexToString 实现方法吗?