0

Web サービスからのログ出力の検索/取得に問題があります。

Tomcat6 コンテナーの axis2 を介して実行されている Web サービスがあり、.aar ファイルには次の構造が含まれています。

root/
    log4j.properties
    lib/
        slf4j-api.jar
        slf4j-log4j12.jar
        log4j-1.2.jar
    com/
        all of my classes
    META-INF/
        services.xml

このサービスは今のところ単純です。

public class MyService {

    private static Logger log = LoggerFactory.getLogger(MyService.class);

    public String echo(String toLog) {
        log.error("Entered echo with [{}]", toLog);

        return "Echo: " + toLog;
    }
}

コマンド ラインで jar ファイルからメイン コマンドを使用して実行すると、ロギングは正常に機能しますが、Web サービスとしてアクセスすると、ロギング ファイルは作成されませんが、エラーも発生しません。クライアントは、期待どおりに "Echo: " + toLog 文字列を受け取ります。

log4j.properties の関連ビットは次のとおりです。

### direct messages to file myservice.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/var/lib/tomcat6/logs/myservice.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, file

log4j.properties ファイルが間違った場所にありますか? それともここで何か他のことが起こっていますか?

4

1 に答える 1

1

Axis2 は Tomcat で Web アプリケーションとしてデプロイされ、独自のロギング構成 (コモンズ・ロギング) を備えています。それがサービス メソッドを呼び出しているため、ロギング ステートメントが Axis2 のログ ファイルのどこかにある可能性が高くなります。

おそらく、サービス ログを独自のファイルに記録する方法を知りたいでしょう。Axis2 のロギング構成を変更し、サービス専用のアペンダーを追加する必要があると思います。

于 2009-10-28T02:47:51.207 に答える