Ведение журнала веб-службы не выводится, но не приводит к сбою
У меня возникли проблемы с поиском / получением каких-либо журналов от веб-службы.
У меня есть веб-сервис, работающий через axis2 в контейнере Tomcat6, файл.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-файла в командной строке ведение журнала работает нормально, но при обращении к нему как к веб-службе файл журнала не создается, но и ошибок не возникает. Клиент получает строку "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 в неправильном месте? Или здесь что-то еще происходит?
1 ответ
Axis2 развернут как веб-приложение в Tomcat и имеет свою собственную конфигурацию регистрации (регистрация общих). Так как это тот, который вызывает ваш сервисный метод, скорее всего, ваши операторы журналирования находятся где-то в файлах журналов Axis2.
Вы, вероятно, хотите знать, как сделать так, чтобы ваш сервисный журнал записывался в отдельный файл. Я думаю, вам придется изменить конфигурацию регистрации Axis2 и добавить приложение специально для вашего сервиса.