题
我无法从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 String string。
这是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应用程序,并具有自己的日志记录配置(公共日志记录)。因为它是调用您的服务方法的那个,所以很可能您的日志记录语句位于Axis2的日志文件中。
您可能想知道如何将服务记录到自己的文件中。我想你必须改变Axis2的日志记录配置并专门为你的服务添加一个appender。
不隶属于 StackOverflow