2011-11-10 29 views
0
@InInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingInInterceptor" ) 
@OutInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingOutInterceptor") 

public class SKTWeb implements SKTWebService { 

// method logic goes here 

} 

こんにちは、これらの2行をCXFメソッド実装の中に追加した後。 私はCXF SOAPリクエストをログファイルに出力する方法

INFO: Inbound Message 
---------------------------- 
ID: 1 
Address: /Sktweb-33.0/services/SKTWeb 
Encoding: UTF-8 
Content-Type: text/xml; charset=UTF-8 
Headers: {cache-control=[no-cache], content-type=[text/xml; charset=UTF-8], connection=[keep-alive], host=[local 
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns4:strategy xmlns:ns 

は誰もが私のログファイルの中にこれを得ることができる方法を教えてもらえますTomcatのコンソールの下に印刷されたSOAPリクエストのインスタンスを参照のTomcatサーバコンソール

下(のLog4jの)SOAP Requestand応答の鞭を得ることができます

現在、これは私のlog4j.propertiesが

log4j.rootCategory=INFO, A1 

# A1 is a DailyRollingFileAppender 

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.A1.file=/Haieeee.log 
log4j.appender.A1.datePattern='.'yyyy-MM-dd 
log4j.appender.A1.append=true 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%n 

を提出し、また、私はMETA-INF \ CXF \ ORG \ Apacheを持っている\ CXF \ LoggですWebアプリケーション内のLog4jLogger.class。 そしてまた、私は

endpoints.xmlファイル内のすべてのヘルプしてください

答えて

0

<cxf:bus> 
<cxf:features> 
<cxf:logging/> 
</cxf:features> 
</cxf:bus> 

を保持基本的には、あなたの特性は、それは、このプロパティはCXFのの代わりにファイルを使用CXFによって選ばれるファイルたいです。 CXFアプリケーションでスプリング構成を使用しています。任意のSpring設定を使用していない場合は、新しい設定を作成し、Springコンテキストリスナーを使用して起動時にその設定をロードします。次に、XMLファイルに以下のコードを追加できます。

<bean id="log4jInitialization" 
     class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
     <property name="targetClass" value="org.springframework.util.Log4jConfigurer" /> 
     <property name="targetMethod" value="initLogging" /> 
     <property name="arguments"> 
      <list> 
       <value>file:fullpath/filename.properties</value> 
      </list> 
     </property> 
    </bean> 

また<list> </list>classpath:filename.propertiesを持つことができます。 Springフレームワークで実装されたロギングは、すべての要求と応答を記録するために使用されます。同じロギング実装を使用して、アプリケーションで使用することもできます。

2

ちょっと混乱しているようです。あなたは(!それは.javaファイルまたは.classファイルのファイルではありませんはい、それらはドットで)配置可能なファイルMETA-INF/cxf/org.apache.cxf.Loggerを持っているあなたの組み立てのアプリケーションを必要とし、それが内容を持っている必要があります。

org.apache.cxf.common.logging.Log4jLogger 

私は私のコードでは正確に上記を使用しますそれは魅力のように機能します。 (私はメッセージのログにはの機能を使用しませんが、私の好みのために展開するとトラフィックが多すぎます...)

0

slf4j-log4j12-1.6.1.jar、slf4j- api-1.6.1.jarおよびcommons-logging-1.1.1.jarを使用します。 cxf.xmlに次のコードを貼り付けます。

<bean class="org.apache.cxf.interceptor.LoggingInInterceptor" id="loggingInInterceptor" /> 
    <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" id="logOutInterceptor" /> 
    <cxf:bus> 
     <cxf:inInterceptors> 
      <ref bean="loggingInInterceptor" /> 
     </cxf:inInterceptors> 
     <cxf:outInterceptors> 
      <ref bean="logOutInterceptor" /> 
     </cxf:outInterceptors> 
    </cxf:bus> 
関連する問題