我无法从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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top