Webサービスのログは出力されませんが、失敗しません
質問
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のロギング構成を変更し、サービス専用のアペンダーを追加する必要があると思います。
所属していません StackOverflow