2009-04-15 3 views
27

Netbeans는 Logger.getLogger (this.getClass(). getName()) .log (신중하게 .문을 catch 블록에 넣습니다. 그들 모두를 하나의 파일 (그리고 콘솔)로 가리 키도록한다.java 로거 출력을 파일로 기본값으로 가져 오는 방법

모든 로깅 튜토리얼 등은 특정 로거를 파일로 출력하는 방법을 알려주지 만, 나는 자동으로 생성되는 모든 것을 고치기보다는 더 좋은 방법이 있다고 가정한다. 로깅 문 또는 일종의 루트 로거 등의 핸들러 설정

+2

IDE가 예외를 "먹는"catch 블록을 생성하고 있습니까? 비열한! 이것은 많은 것을 설명합니다. – erickson

답변

39

난 그냥 시작에 다음을 추가

Handler handler = new FileHandler("test.log", LOG_SIZE, LOG_ROTATION_COUNT); 
Logger.getLogger("").addHandler(handler); 

당신은 LOG_SIZELOG_ROTATION_COUNT

당신은에 맞게 로깅 수준을 조정해야 할 수도 있습니다에 대한 자신의 값을 지정할 수 있습니다.

+0

고맙다. 이것은 내가 본 후에 있었던 것처럼 보입니다. – Bloodboiler

+1

이 작업을 수행하면 "Void를 역 참조 할 수 없습니다." – Dan

2

로거 구성 파일에서 로그가 기록되는 위치를 정의해야합니다. 예를 들어, log4j를 사용하는 경우 log4j.xml 또는 log4j.properties) 파일에는 이러한 정보가 들어 있습니다. 예를 들어

, 여기에 간단한의 log4j.xml의 파일 (내-app.log)에 직접 로그 파일과 콘솔에 있습니다

<?xml version="1.0" encoding="UTF-8"?> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="rolling" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="File" value="my-app.log" /> 
     <param name="DatePattern" value=".yyyy-MM-dd" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
       value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%C] [IP=%X{ipAddress}] [user=%X{user}] %m%n" /> 
     </layout> 
    </appender> 

    <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" 
       value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%C] [user=%X{user}] %m%n" /> 
     </layout> 
    </appender> 

    <root> 
     <priority value="info" /> 
     <appender-ref ref="console" /> 
     <appender-ref ref="rolling" /> 
    </root> 

</log4j:configuration> 
+4

나는 질문자가 log4j보다는 java.util.logging의 클래스를 사용하고 있다고 생각한다. –

+2

그는 log4j를 사용하지 않고있다. netbeans는 java.util.logging을위한 코드를 생성한다. –

관련 문제