質問

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ファイルは間違った場所にありますか?または、ここで何か他のことが起こっていますか?

役に立ちましたか?

解決

Axis2はTomcatでWebアプリケーションとしてデプロイされ、独自のログ設定(commons logging)があります。サービスメソッドを呼び出しているので、おそらくログステートメントはAxis2のログファイルのどこかにあります。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top