我查找了所有消息,但沒有找到明確的答案。cxf入站和出站消息記錄到單獨的日誌文件
如何配置日誌以記錄CXF入站和出站安寧消息?
我有以下設置。
文件org.apache.cxf.Logger與
org.apache.cxf.common.logging.Log4jLogger
applicationContext.xml中具有以下(這聽起來很傻,但它是攔截我能得到的信息輸出的唯一的地方)
<bean id="abstractLoggingInterceptor" abstract="true"> <property name="prettyLogging" value="true"/> </bean> <bean id="loggingInInterceptor" class="org.apache.cxf.interceptor.LoggingInInterceptor" parent="abstractLoggingInterceptor"/> <bean id="loggingOutInterceptor" class="org.apache.cxf.interceptor.LoggingOutInterceptor" parent="abstractLoggingInterceptor"/> <cxf:bus> <cxf:inInterceptors> <ref bean="loggingInInterceptor"/> </cxf:inInterceptors> <cxf:outInterceptors> <ref bean="loggingOutInterceptor"/> </cxf:outInterceptors> <cxf:outFaultInterceptors> <ref bean="loggingOutInterceptor"/> </cxf:outFaultInterceptors> <cxf:inFaultInterceptors> <ref bean="loggingInInterceptor"/> </cxf:inFaultInterceptors> </cxf:bus>
我試圖按照與SLF4J與log4j的這些指令,但唯一的輸出I獲取文件是應用程序日誌消息。我可以在控制檯上看到入站和出站消息。
我可以得到類似於logback.xml的工作,所以我將應用程序日誌和消息日誌分開。示例:http://www.wolfe.id.au/2011/05/20/apache-cxf-logging/
謝謝。
編輯1: 我刪除org.apache.cxf.common.logging.Log4jLogger從我的類路徑,並置於以下我的log4j.xml。它在日誌級別等於INFO時記錄到文件和控制檯。
<appender name="RSLOGFILE" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${project.basedir}/logs/cxf_inout_messages.log"/>
<param name="MaxFileSize" value="100KB"/>
<!-- Keep one backup file -->
<param name="MaxBackupIndex" value="1"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- Print the date in ISO 8601 format -->
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<logger name="org.apache.cxf">
<level value="ERROR"/>
<appender-ref ref="RSLOGFILE"/>
</logger>
一切都很好,只是一個小紙條: 記得把 「META-INF/CXF/org.apache.cxf.Logger」 下,例如的src/main /資源,而不是 「的src/main/webapp的」像我一樣。這樣它將在類路徑下。 – 2015-08-19 14:40:57