如何使用Logback关闭Apache CXF输出到STDOUT的SOAP消息日志
Got it,我帮你搞定这个Apache CXF SOAP消息冗余日志的问题!
解决CXF服务SOAP消息冗余日志问题
你用Logback管理日志时,org.apache.cxf.services包下输出大量SOAP请求/响应日志,导致控制台和catalina.out日志冗余,只需要在你的Logback配置里加一段针对性的logger配置就能解决。
具体修改步骤
在你的Logback配置文件中,添加以下logger节点(建议放在现有appender定义之后、root logger之前):
<!-- 过滤org.apache.cxf.services的SOAP消息日志 --> <logger name="org.apache.cxf.services" level="WARN" additivity="false"> <appender-ref ref="STDOUT" /> </logger>
配置细节解释
- level="WARN":把这个包的日志级别提升到WARN,这样只有警告及以上(比如ERROR)的日志会被输出,那些DEBUG/INFO级别的SOAP消息就会被过滤掉。如果你想彻底关闭这个包的所有日志,直接把级别改成
OFF就行。 - additivity="false":防止这个logger的日志被重复传递到root logger,避免日志重复打印。
结合你现有配置的完整示例
<!-- 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> <!-- 新增:关闭CXF服务的SOAP冗余日志 --> <logger name="org.apache.cxf.services" level="WARN" additivity="false"> <appender-ref ref="STDOUT" /> </logger> <!-- 你的Root Logger配置(如果已有) --> <root level="INFO"> <appender-ref ref="STDOUT" /> </root>
配置完成后重启服务,控制台和catalina.out里就不会再充斥那些冗余的SOAP消息日志了,同时还能保留CXF服务相关的重要警告和错误信息。
内容的提问来源于stack exchange,提问作者e2rabi
相关产品推荐
相关产品推荐

