2016-06-16 1 views
0

대신 내 문제를보고 downvoting 좀 도와주세요.어떻게 오류, 정보 및 추적 보고서를 세 개의 다른 파일에 별도로 저장합니까? 난 log4j2를 사용했습니다

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 

public class NewClass { 
    private static final Logger logger = LogManager.getLogger(NewClass.class); 

    public static void main(final String... args) { 

     // Set up a simple configuration that logs on the console. 
     logger.info("in info"); 
     logger.trace("Entering application."); 
     Hello bar = new Hello(); 
     if (!bar.doIt()) { 
      logger.error("Didn't do it."); 
     } 
     logger.trace("Exiting application."); 
    } 
} 


import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 

public class Hello { 
    static final Logger logger = LogManager.getLogger(Hello.class.getName()); 

    public boolean doIt() { 
     logger.entry(); 
     logger.error("Did it again!"); 
     return logger.exit(false); 
    } 
} 

구성

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="WARN"> 
    <Appenders> 
    <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 
    </Appenders> 
    <Loggers> 
    <Root level="error"> 
     <AppenderRef ref="Console"/> 
    </Root> 
    <Root level="info"> 
     <AppenderRef ref="Console"/> 
    </Root> 
    <Root level="trace"> 
     <AppenderRef ref="Console"/> 
    </Root> 
    </Loggers> 
</Configuration> 

여기에 내가 콘솔에 모든 것을 인쇄 할 수 있어요하지만 오류, 정보를 폴더에 세 가지 다른 파일에 레코드를 추가하는 방법을 잘 모르겠어요 따라와 자취. 나는 그것을 코딩하는 방법을 잘 모르겠습니다. 도와 주셔서 감사합니다.

+0

가능한 중복 (http://stackoverflow.com/ 질문/1839647/how-to-configure-log4j-to-log-different-log-levels-to-different-files-for-the-sa) – Jens

답변

0

약간 다른 경우를 위해 here 전체 예제가 있습니다. 경우가 더 쉽습니다. 원하는 각 로그에 대해 전용 파일 첨부기를 정의해야합니다. 각 appender는 관련 메시지를 필터링하기 위해 다른 이름과 임계 값 필터를 가져야합니다. 오류 메시지에 대한 예를 들어 :

<RollingFile name="ErrorsLog" fileName="${errLogDir}/${errLogFile}.log" 
     filePattern="${errLogDir}/${errLogFile}-%d{dd-MM-yyyy}.log"> 
     <Filters> 
      <ThresholdFilter level="error"/> 
     </Filters> 
     <PatternLayout> 
      <pattern> 
       %d{EEE, dd MMM yyyy HH':'mm':'ss } %m%n 
      </pattern> 
     </PatternLayout> 
     <Policies> 
      <TimeBasedTriggeringPolicy/> 
     </Policies> 
     <DefaultRolloverStrategy max="30"/> 
</RollingFile> 

[같은 로거에 대해 서로 다른 파일에 다른 로그 수준을 로깅한다을 구성하는 방법]의