【问题标题】:How to turn off Soap Message CXF form STDOUT using logback如何使用 logback 关闭来自 STDOUT 的 Soap 消息 CXF
【发布时间】:2018-03-30 08:57:32
【问题描述】:

我正在使用 Apache cxf 开发 Web 服务,但在我的控制台和 catalina.out 中我有很多额外的日志,我正在使用 logback 进行日志记录。

我想关闭 org.apache.cxf.services 生成的日志记录 soap 消息,这是我的 logback 配置:

<!-- Standard Output logger -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>

<!-- File Appender -->
    <appender name="FILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/logs/output-log.log</file>
        <triggeringPolicy
            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>1MB</maxFileSize>
        </triggeringPolicy>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>/logs/output-log-%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>

        <encoder>
            <pattern>%d{dd-MM-yyyy HH:mm:ss.SSS} %-5p [%-10.10t]
                %60.60c:%-3L%m%n
            </pattern>
        </encoder>
    </appender>

<logger name="org.apache.cxf" level="ERROR" additivity="false">
        <appender-ref ref="AUDITTRAIL" />
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
        <!-- appender-ref ref="SYSLOG" / -->
    </logger>

    <logger name="org.apache.cxf.interceptor" level="ERROR"
        additivity="false" />
    <logger name="org.apache.cxf.services" level="ERROR" additivity="false" />

    <root level="INFO">
        <appender-ref ref="AUDITTRAIL" />
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
        <!-- appender-ref ref="SYSLOG" / -->
    </root>

使用此配置,我的控制台日志和 outlog 文件示例中仍然会收到肥皂消息:

 mars 30, 2018 9:55:00 AM org.apache.cxf.services.WebServiceImplService.StartImplPort.WebService
INFOS: Inbound Message
----------------------------
ID: 5
Address: http://127.0.0.1:8089/glsid/ws/webService
Encoding: UTF-8
Http-Method: POST
Content-Type: text/xml; charset=utf-8
Headers: {Accept=[text/xml, text/html, image/gif, image/jpeg, 
.......

任何帮助解决这个问题提前谢谢

【问题讨论】:

    标签: java logging soap cxf logback


    【解决方案1】:

    最后这个解决方案对我有用:

    在文件中:META-INF/cxf/org.apache.cxf.Logger

    我加了:org.apache.cxf.common.logging.Slf4jLogger

    在spring配置中:applicationContext:

    我补充说:

     <bean id="loggingInInterceptor" class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
        <bean id="loggingOutInterceptor" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/> 
        <cxf:bus>
         <cxf:inInterceptors>
                <ref bean="loggingInInterceptor"/>
            </cxf:inInterceptors>
            <cxf:outInterceptors>
                <ref bean="loggingOutInterceptor"/>
            </cxf:outInterceptors>  
        </cxf:bus>
    

    并在 logback.xml 中关闭 STDOUT 中的soap日志记录:

    <!-- Apache CXF logger -->
          <logger name="org.apache.cxf" level="INFO"/>
          <logger name="org.apache.cxf.interceptor" additivity="false">
            <!-- <appender-ref ref="STDOUT" /> -->
            <appender-ref ref="FILE" />
          </logger>
    
        <root level="INFO">
            <!-- <appender-ref ref="STDOUT" />-->
            <appender-ref ref="FILE" />
        </root>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多