본문 바로가기
Project/jp

(6)로그(log4j) 설정하기

by 김뚱 2018. 7. 19.

1. log4j

apache log4j는 java 기반 로깅 유틸리티이며, 여러 자바 로깅 프레임 워크 중 하나이다. 

우리가 흔히 할고있는 System.out.println()도 log의 한 종류라고 생각할 수 있다.

만약 이 System.out.println()을 모든 소스에서 사용한다면 다음과 같은 문제점이 발생한다.


1) 시스템 운영시에 불필요한 로그가 계속 출력되어 리소스가 낭비된다. 이를 지울경우 모든 소스를 찾아서 지워야 한다. 


2) 로그를 지웠을 경우 에러원인을 찾기 어려운 경우가 발생할 수 있다.

   예를 들어 에러가 났을 경우 로그를 출력하도록 해놨는데 이를 지웠다면 에러로그가 안남을 수 있다.


3) 프로그램을 실행하는데 있어서 System.out.println()을 굉장히 많이 호출하면 프로그램의 전체적인 성능이 떨어진다. 


log4j는 시스템의 성능에 큰 영향을 미치지 않으면서도 옵션 설정을 통해서 다양한 로깅 방법을 제공한다. 

환경설정을 통해서 선택적인 로그를 남긴다거나, 특정 파일등에 로그를 생성하는 등 다양한 이점을 가지고 있다. 


>톰캣이 구동된 이후 해당 애플리케이션에서는 위 log4j.xml의 설정에 따라서 log4j를 사용해 로깅이 가능하게 된다. 


2. 사용방법 

* log4j에 .porperties를 사용하지말자(중요!)

1) pom.xml에 log4j를 추가한다.

2) src/main/resources 폴더 아래 log4j.xml파일 수정 : 로그 출력형식과 레벨 등을 지정할 수 있다.




<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p [%c] - %m%n" />
</layout>
</appender>
<appender name="console-infolog" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p %m%n" />
</layout>
</appender>

<!-- Application Loggers -->
<logger name="jp" additivity="false">
<level value="debug" />
<appender-ref ref="console" />
</logger>

<!-- 3rdparty Loggers -->
<logger name="org.springframework.core">
<level value="info" />
</logger>

<logger name="org.springframework.beans">
<level value="info" />
</logger>

<logger name="org.springframework.context">
<level value="info" />
</logger>

<logger name="org.springframework.web">
<level value="info" />
</logger>

<!-- Query Loggers -->
<logger name="jdbc.sqlonly" additivity="false">
<level value="info" />
<appender-ref ref="console-infolog" />
</logger>

<logger name="jdbc.resultsettable" additivity="false">
<level value="info" />
<appender-ref ref="console" />
</logger>

<!-- Root Logger -->
<root>
<priority value="off" />
<appender-ref ref="console" />
</root>

</log4j:configuration>


728x90
반응형

'Project > jp' 카테고리의 다른 글

(8)데이터베이스(Oracle) 연결  (0) 2018.07.20
(7)인터셉터(Interceptor) 설정하기  (0) 2018.07.19
(5)web.xml 설정하기  (0) 2018.07.19
(4)pom.xml 설정하기  (0) 2018.07.14
(3)스프링 프로젝트 생성하기  (0) 2018.07.14

댓글