[英]CXF log4j doesn't work since migrating from cxf 2.2.3 to 2.7.17
我們最近從CXF 2.2.3遷移到CXF2.7.17,我再也看不到他們應該去的日志文件中的任何cxf日志。
據我所知,我們記錄CXF的配置是相當標准的。
在cxf.xml中,我們有
<bean id="logInbound" class="org.apache.cxf.interceptor.LoggingInInterceptor" />
<bean id="logOutbound" class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
<cxf:bus>
<cxf:inInterceptors>
<ref bean="logInbound" />
</cxf:inInterceptors>
<cxf:outInterceptors>
<ref bean="logOutbound" />
</cxf:outInterceptors>
<cxf:outFaultInterceptors>
<ref bean="logOutbound" />
</cxf:outFaultInterceptors>
<cxf:inFaultInterceptors>
<ref bean="logInbound" />
</cxf:inFaultInterceptors>
</cxf:bus>
Tomcat(Java 7為7)使用以下參數啟動:
-Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Log4jLogger
在我們的lo4g道具文件中:
log4j.appender.cxfAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.cxfAppender.file=/usr/users/theuser/DATA/LOG/theappli-web/theappli-CXF.log
log4j.appender.cxfAppender.layout=com.thefirm.log.PatternLayout
log4j.appender.cxfAppender.layout.ConversionPattern=%D %h TOMCAT[-%C{1}] : %X{UTILISATEUR}-%X{JSESSIONID};%p;%M;ESV;%X{CODE_MSG};%m;;%n
log4j.logger.org.apache.cxf.interceptor=INFO, cxfAppender
log4j.additivity.org.apache.cxf.interceptor=false
在遷移期間,這些文件沒有任何變化。 有人在遷移后會遇到同樣的問題嗎?
我終於在cxf遷移日志中找到了答案。
日志攔截器現在使用服務特定類別/日志記錄器進行日志記錄,而不僅僅是LoggingInInterceptor / LoggingOutInterceptor。 使用的> logger的名稱為org.apache.cxf.services.ServiceName.PortName.PortTypeName。 這允許用戶>在他們的日志記錄>配置中配置特定的每個服務過濾器和格式化程序。
解決方案是將log4j.logger.org.apache.cxf.interceptor=INFO, cxfAppender
為log4j.logger.org.apache.cxf.=INFO, cxfAppender
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.