Programing/egovFramework

log4j2 로그 파일 만들기, 특정데이터 로그 남기기

리커니 2017. 10. 17.
반응형

 

log4j2 로그 파일 만들기, 특정데이터 로그 남기기

 

특정 데이터의 로그를 남기고 싶을 경우에 사용합니다.

 

전자정부프레임워크의 src/main/resource 경로로 이동하시면 log4j2.xml 이라는

log4j2 설정 파일이 있습니다.

(log4j 와 다르게 log4j2는 xml 파일로 설정이 가능합니다.)

 

우선 로그파일이 남게 하기 위해선 file appenders가 필요합니다.

<Configuration> 태그 아래

<Appenders> 태그 사이에 <File> 태그를 추가합니다.

 

    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %5p [%c] %m%n" />
        </Console>
        
        <File name="file" fileName="./logs/file/am_test.log">
         <PatternLayout pattern="%d %5p [%c] %m%n" />
        </File>

    </Appenders> 

 

이렇게 하고 프로젝트를 재실행 하면 해당 경로에 파일이 생성된 것을 확인 하실 수 있습니다.

 

 

 

이제 특정 패키지 내의 모든 로그를 찍기 위한 작업을 하도록 하겠습니다.

 

<Appenders> 아래 <Loggers> 태그에 아래와 같이 추가합니다.

 

  <logger name="egovframework.eCall.amTest.web" level="trace" additivity="false" >
       <AppenderRef ref="file" />
  </logger>

 

 

내용인 즉슨, egovframework.eCall.amTest.web 패키지 내에 trace 레벨로 중복없이 남기겠다는 의미 입니다.

 

Level에 대해서는 아래의 Link를 참고하세요.

 

 

Link : 전자정부프레임워크 Log4j2 환경설정

 

 

 

이제 위의 패키지내의 컨트롤러로 이동하도록 하겠습니다.

egovframework.eCall.amTest.web 패키지 내에는 AmTestController 클래스가 있고

그 내에서 받은 value 값을 로그로 남기고 싶다고 합니다.

 

@Controller
public class AmTestController { 

 

       //해당 클래스에 로거를 생성하고

       Logger logger = Logger.getLogger(AmTestController.class);

 

@RequestMapping(value="/cbor", produces="text/plain;charset=UTF-8")
@ResponseBody
public String cborInsertMsd(HttpServletRequest request) throws Exception {

 

String cbor = request.getParameter("value");

//받은 파라메터 값을 로그로 출력합니다.

logger.info(cbor);

}

}    

 

이렇게 설정을 하게 되면 해당 파일에 로그 값이 남게 됩니다.

 

 

 

반응형

댓글

💲 추천 글