java - 在 jboss 中禁用 Axis log4j 日志记录

标签 java jboss log4j axis

我有一个小应用程序,它通过网络服务将图片上传到另一个网站。 我当前的问题是,Axis 正在通过 STDOUT 记录整个 xml 消息(包括图片的二进制数据!),但我似乎不知道如何禁用它。

我的 jboss log4j 设置(jboss-log4j.xml)包括用于正常 STDOUT 信息日志记录的附加程序,并且我尝试使用不同的类别设置禁用 Axis :

<appender name="STDLOG" class="org.jboss.logging.appender.RollingFileAppender">
  <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
  <param name="File" value="${jboss.server.log.dir}/myapplication.log"/>
  <param name="Append" value="true"/>
    <param name="MaxFileSize" value="5MB"/>
    <param name="MaxBackupIndex" value="10"/>

    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/>
  </layout>
</appender>

将此设置用于 STDOUT:

<category name="STDOUT">
  <priority value="DEBUG"/>
  <appender-ref ref="STDLOG"/>
</category>

我尝试了这些类别设置,结果没有任何变化:

<category name="log4j.logger.org.apache.axis" additivity="false">
  <priority value="ERROR"/>
</category>

<category name="org.apache.axis">
  <priority value="ERROR"/>
</category>

一些示例日志输出如下所示:

2009-08-07 10:29:43,911 INFO  [STDOUT] (http-127.0.0.1-8080-1) =======================================================
= Elapsed: 2190 milliseconds
= In message: <?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <addVehicleImage xmlns="urn:VMgrWebService">
   <id xmlns="">APP-T4QKR3U</id>
   <idType xmlns="">chiffre</idType>
   <data xmlns="">9j4AAQSkZJRgABAQAAAQABAAD2wBDAAUDBAQEAwUEBAQFB
     QUGBww0TDMnrXAfKlLjnNJZcciiAOtqk9NG99qhZJKuyYq5k3G
     8P2bVSOpT7rVddRP2Z/yqidRuMMKaO2CXRQNWP2jfOo4S4Bo3W
   removed rest of image data...
     IBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGe1UqaZJJy0jSHPGQ
2009-08-07 10:29:43,927 INFO  [STDOUT] (http-127.0.0.1-8080-1) Upload result: true for image mypicture.JPG  

更新 我检查了 axis-1.4.jar,有一个名为 simplelog.properties 的文件:

# Logging detail level,
# Must be one of ("trace", "debug", "info", "warn", "error", or "fatal").
org.apache.commons.logging.simplelog.defaultlog=info

将其设置为 jar 内的错误,或设置为 jboss-log4j.xml 中的类别根本没有帮助。

有人知道如何关闭 Axis 日志记录或至少将其设置为错误级别吗?

干杯
弗兰克

最佳答案

这可能有点晚了,但问题似乎并不在于日志记录本身是在 Axis 中完成的(通过 System.out 和 Commons Logging),而是 LogHandler存在于处理程序链中。这就是记录耗时的方式。

您可以从 Axis configuration file 禁用此处理程序(s) - server-config.wsdd 和/或 client-config.wsdd,具体取决于您使用 Axis 作为服务器还是客户端。

您在控制台中看到消息的原因可能是由于 LogHandler.writeToConsole 属性设置为 true。如果将 LogHandler.writeToConsole 设置为 false,则它应该写入由 LogHandler.fileName 属性定义的文件。默认情况下,文件名为 axis.log。

关于java - 在 jboss 中禁用 Axis log4j 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1243768/

相关文章:

java - Log4j:以编程方式更改日志级别,适用于要创建的记录器

Java/.NET 生成具有 cookie 设置的浏览器

java - 不可解析的 POM

java - 正则表达式不应该发生灾难性的回溯

java - SQL异常 : No suitable driver found for jdbc:postgresql

java - log4j.RollingFileAppender 既不滚动也不添加时间戳

java - 如何确保doLast甚至任务被跳过

JavaEE Arquillian 和 JBoss 8.0.0beta 1 :

java - @Timeout 注释方法上的 AroundInvoke 拦截器不起作用

java - 尝试初始化 Spring 时出现 AbstractMethodError