0

我无法从 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 文件位置是否错误?还是这里发生了其他事情?

4

1 回答 1

1

Axis2 部署为 Tomcat 中的 Web 应用程序,并具有自己的日志记录配置(公共日志记录)。因为它是调用您的服务方法的那个,所以您的日志记录语句很可能在某个地方的 Axis2 的日志文件中。

您可能想知道如何将您的服务日志保存到自己的文件中。我认为您必须更改 Axis2 的日志记录配置并专门为您的服务添加一个附加程序。

于 2009-10-28T02:47:51.207 回答