【问题标题】:Turn off Console Messages docx4j关闭控制台消息 docx4j
【发布时间】:2015-07-29 10:14:51
【问题描述】:

Docx4j 给了我一堆这样的消息

[AWT-EventQueue-0] INFO org.docx4j.model.listnumbering.Emulator -

如何关闭它?

以下日志配置已加载,但不会关闭日志记录。

    <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
  </appender> 

  <root> 
    <priority value ="OFF" /> 
  </root>

</log4j:configuration>

【问题讨论】:

  • 为 org.docx4j 创建记录器并设置日志级别错误
  • 你用的是什么版本的 log4j?
  • 我用的是1.2.11版

标签: java log4j docx4j


【解决方案1】:

将以下行添加到您的配置中:

<logger name="org.docx4j.model.listnumbering.Emulator">
   <level value="ERROR" />
   <appender-ref ref="console"/>
</logger>

这会将 log4j 配置为仅记录来自记录器 org.docx4j.model.listnumbering.EmulatorERROR 消息。如果您想关闭来自org.docx4j 下所有类/包的 INFO 消息,请使用以下命令:

<logger name="org.docx4j" >
    <level value="ERROR" />
    <appender-ref ref="console"/>       
</logger>

更多信息在这里:http://www.javabeat.net/baisc-steps-to-configure-log4j-using-xml-and-properties-file/

【讨论】:

  • 不幸的是,如果这样做,我会收到一个错误:log4j:ERROR 第 11 行和第 42 列的解析错误 log4j:ERROR 必须声明元素类型“Logger”。 log4j:ERROR 第 14 行和第 23 列解析错误 log4j:ERROR 元素类型“log4j:configuration”的内容必须匹配“(renderer*,appender*,(category|logger)*,root?,categoryFactory?)”。
  • 即使添加了您的代码,我仍然会从 listnumbering 获得 INFO 日志
  • 可以分享设置log4j的代码吗?类路径中是否有 log4j.properties 文件?
  • 我没有为每个代码设置 log4j,我使用命令行参数,它提供 log4j.properties
  • 如果使用 log4j.properties 文件,则无法使用 XML 配置它。您必须在 log4j.properties 文件中添加 log4j.org.docx4j=ERROR, console
【解决方案2】:

我使用的是 docx4j 8.3.2,由 slf4j 1.7.30 + logback 1.2.3 记录。 在 src/main/resources 下添加 logback.xml 后,烦人的日志消息消失了。 logback.xml 内容:

<configuration>
    <appender name="STDOUT"
              class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder
            by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} %line - %msg%n
            </pattern>
        </encoder>
    </appender>
    <!-- docx4j loggers -->
    <logger name="org.docx4j" level="ERROR" />
 
    <root level="DEBUG">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

【讨论】:

    猜你喜欢
    • 2018-02-22
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多