【问题标题】:Web service logging not outputting, but not failingWeb 服务日志记录未输出,但未失败
【发布时间】:2009-10-28 01:36:47
【问题描述】:

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

【问题讨论】:

    标签: java tomcat log4j axis2


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-13
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多