2012-04-27 2 views
1

콘솔에 아무 것도 출력하지 않는 Java EE 웹 응용 프로그램에서 작업 중입니다. log4j를 사용하면 log4j.properties 파일이 stdout으로 출력되도록 설정됩니다. 그러나 작동하지 않고 콘솔에 로깅이 나타나지 않습니다. System.out조차 콘솔에 나타나지 않는 것으로 나타났습니다. 무엇이 이것을 일으킬 수 있습니까?콘솔에 Java 쓰지 않음

MyEclipse 10.1, log4j-1.2.11, tomcat 5.5.35, java 1.6.0_31을 실행 중입니다. 여기의 요청에 따라

, 내 .properties 파일은 파일입니다

### direct log messages to stdout ### 
# Configure Root Logger 
log4j.rootLogger = DEBUG, stdout 
log4j.logger.org.hibernate = DEBUG, stdout 
#log4j.logger.org.springframework = ERROR, stdout 

# Configure stdout Appender 
log4j.appender.stdout = org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern =%d [%t] %-5p %c - %m%n 

및 로그 핸들러를 :

public class LogHandler { 
private static Logger sLog = Logger.getLogger(LogHandler.class); 
public LogHandler(){ 

} 
public void info_toLOG(String msg00) { 
    sLog.info("\n" + msg00 + "\n"); 
} 

public void error_toLOG(Exception e) { 
    sLog.error("\n" + e.getClass() + "\n" 
      + e.getCause() + "\n" 
      + e.getMessage() + "\n" 
      + e.getLocalizedMessage() + "\n" 
      + e.getStackTrace().toString() + "\n"); 
} 

public void warning_toLOG(String msg00) { 
    sLog.warn("\n" + msg00 + "\n"); 
} 

}

난은 MyEclipse가 시작하고 중지하는 데 사용. 내 바람둥이에 설치 지점을 가리 키세요.

-Dcatalina.home="<tomcat dir>" 
-Dcatalina.base="<tomcat dir> " 
-Djava.endorsed.dirs="<tomcat dir>/common/endorsed" 
-Djava.io.tmpdir="<tomcat dir>/temp" 
-Djava.library.path=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:"<tomcat dir>/bin" 
-Dsun.io.useCanonCaches=false 
-Xmx1024M 

편집 :은 MyEclipse는 다음 VM 인자들을 추가 도움을 시도하는 사람들에게 감사드립니다. 원래 질문에서 Mac OS X 10.7.3을 실행 중이라고 설명 했어야합니다. 유틸리티 -> Java 환경 설정 -> 고급 -> Java 콘솔에서 설정을 한 번 콘솔 표시로 설정하면 문제가 해결되었습니다.

+0

log4j 구성 (http://logging.apache.org/log4j/1.2/manual.html)은 까다로울 수 있습니다. 일반적인 설정에서는 특정 범주의 로그 메시지를 처리하도록 설정된 리스너가 있으며 각 리스너는 다양한 대상 (내 전문 용어, log4j가 아닌)으로 출력을 보낼 수 있습니다. 등록 정보 파일과 로깅 작업을 수행하는 Java 코드 예제 라인을 게시 할 수 있으면 문제의 원인을 지적 할 수 있습니다. –

답변

3

Tomcat에서 System.out 및 System.err은 catalina.out 로그 파일로 이동합니다. 출력을 확인하십시오.

업데이트 정확한 log4j 구성을 테스트 한 결과 출력이 Tomcat 7 Windows의 tomcat7-stdout.<date>.log으로 전송되었음을 확인할 수 있습니다.

2012-04-27 15:59:47 Commons Daemon procrun stdout initialized 
2012-04-27 15:59:51,955 [http-apr-8080-exec-3] INFO org.apache.log4j.Logger - hey log 
blah 

이 로그 파일 이름은 리눅스에서 catalina.out해야한다, 톰캣 5.5에 대해 서로 다른 것, 그것은 Windows의 다른 이름을 (그래서 설명서를 말한다, 나도 몰라) 할 것이다. 출력의이 유형은, 콘솔을 이클립스하여 WAR 파일을 구축하고 위의를 확인하기 위해 독립 톰캣에 배포하기 시도로 이동한다

Logger l = Logger.getLogger(Logger.class); 
l.info("hey log"); 
System.out.println("blah"); 

UPDATE2 이클립스에서 :

는 코드입니다.

+0

감사합니다. 그러나 catalina.out 파일이 표시되지 않습니다. – Ken

+0

'/logs' 디렉토리에 무엇이 있습니까? 나는 이전 버전의 Tomcat을 생각할지도 모른다. – maksimov

+0

내 Tomcat 7에서 System.out은'/logs/tomcat7-stdout으로 끝납니다. .log'. – maksimov

관련 문제