cxf inbound-und outbound-message-logging auf die separate log-Datei
Schaute ich alle Nachrichten, die aber nicht zu finden, die eine klare Antwort für diese Frage.
Wie kann ich konfigurieren Sie die Protokollierung in log-CXF inbound-und outbound-restful-Nachrichten ?
Habe ich Folgendes setup.
- Datei org.apache.cxf.Logger mit
org.apache.cxf.common.logging.Log4jLogger
- applicationContext.xml hat die folgende (es klingt dumm, aber es ist der einzige Ort für die Abfangjäger, das ich bekommen konnte-Nachrichten Ausgabe)
<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>
Habe ich versucht, diese Anweisungen zu befolgen, die mit slf4j und log4j werden, aber die einzige Ausgabe, die ich bekomme, um die Datei Anwendungsprotokoll-Nachrichten. Ich kann sehen, eingehende und ausgehende Nachrichten auf meiner Konsole.
Bekomme ich etwas ähnliches wie logback.xml arbeiten für mich, so dass ich separate app-logs und message-Protokolle. Beispiel: http://www.wolfe.id.au/2011/05/20/apache-cxf-logging/
Dank.
EDIT 1:
Ich entfernte org.apache.cxf.common.die Protokollierung.Log4jLogger von meinem classpath, und platziert die folgenden zu meinen log4j.xml. Es Protokollierung in Datei und auf console, wenn die Ebene der Protokollierung wird gleich 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>
InformationsquelleAutor vlr | 2012-02-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, Sie sind mit CXF 2.2.8 oder höher, müssen Sie Folgendes tun:
Schritt 1) Erstellen Sie eine Datei
META-INF/cxf/org.apache.cxf.Logger
auf der Klassenpfad enthält die folgenden:Wenn Sie mit Maven, diese neue Datei muss in
src/main/resources/META-INF/cxf
, nicht untersrc/main/webapp
!Schritt 2) Wenn Sie möchten, um alle Nachrichten zu protokollieren, erstellen Sie eine CXF
LoggingFeature
, legen Sie dieprettyLogging
Eigenschafttrue
und fügen Sie es in die CXF-bus.Schritt 3) Fügen Sie die erforderlichen jar-Dateien für log4j und slf4j-log4j12. Wenn Sie mit Maven, schließen die folgenden Abhängigkeiten:
Schritt 4) In Sie
log4j.xml
setzen Sie den log-level vonorg.apache.cxf.services
zu INFO, setadditivity
zuFALSE
aus und fügen Sie eine dedizierte appender:Habe ich einen blog-post, der erklärt, wie zu konfigurieren, CXF für log4j im detail.
InformationsquelleAutor CodeNotFound