문제

웹 서비스에서 로깅 출력을 찾거나받는 데 어려움이 있습니다.

Tomcat6 컨테이너에서 Axis2를 통해 실행되는 웹 서비스가 있습니다. .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 파일이 있습니까? 아니면 여기서 다른 일이 일어나고 있습니까?

도움이 되었습니까?

해결책

Axis2는 Tomcat에서 웹 응용 프로그램으로 배포되며 자체 로깅 구성 (Commons Logging)이 있습니다. 서비스 방법을 호출하는 것이기 때문에 로깅 문은 Axis2의 로그 파일에있을 가능성이 높습니다.

당신은 아마도 서비스 로그를 자체 파일에 사용하는 방법을 알고 싶을 것입니다. Axis2의 로깅 구성을 변경하고 서비스를 위해 특별히 appender를 추가해야한다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top