본문 바로가기

프로그래밍/스프링[Spring]

[스프링] log4J 처음 사용하기[xml 이용]



안녕하세요 이번에는 스프링 프레임워크에서 Log4J 를 사용하는 방법에 대해 알려드리고자 합니다.

 

일단 간단하게 Log4J의 정의입니다

  Log4j 정의

log4j는 Apache에서 만든 오픈소스 라이브러리로 프로그램을 작성하는 도중에 로그를 남기기 위해 사용되는

자바 기반 로깅 유틸리티로 디버그용 도구로 주로 사용되고 있습니다.

  Log4j 라이브러리 추가

우선 스프링 프레임워크에서 pom.xml에 log4j가 있는지 확인합니다.

 

기본적인 프로젝트에서 pom.xml에 보시면 대채적으로 log4j가 추가 되어있을 겁니다.

혹시나 없는경우 아래의 코드를 추가해주세요.

 

추가한 이후 maven clean과 install은 필수인거 다들 아시죠~?

<dependency>
	<groupId>log4j</groupId>
	<artifactId>log4j</artifactId>
	<version>1.2.15</version>
	<exclusions>
		<exclusion>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
		</exclusion>
		<exclusion>
			<groupId>javax.jms</groupId>
			<artifactId>jms</artifactId>
		</exclusion>
		<exclusion>
			<groupId>com.sun.jdmk</groupId>
			<artifactId>jmxtools</artifactId>
		</exclusion>
		<exclusion>
			<groupId>com.sun.jmx</groupId>
			<artifactId>jmxri</artifactId>
		</exclusion>
	</exclusions>
	<scope>runtime</scope>
</dependency>

  Log4j XML 작성

Log4j를 XML로 작성할텐데요.

 

간혹 property로 작성을 원하시거나 작성하신분들이 계실겁니다.

 

프로퍼티로 작성을 해도 되지만 권장하진 않습니다.

 

간단한 이유로는 xml이 프로퍼티보다 뒤늦게 나온 방법이고 java9미만 버전에서는 프로퍼티는

ASCII 문자만 사용이 가능해서 별도의 인코딩 작업이 필요합니다.

 

이러한 이유때문에 XML로 작성을 추천합니다.

 

src/main/resources 밑에 log4j.xml 를 생성하면 알아서 인식이 됩니다.

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="%-5p: %c - %m%n" />
        </layout>
    </appender>
    <!-- Application Loggers -->
    <logger name="com.mycompany.example"  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>

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

  Log4j 작동 확인

자 이제 본격적으로 사용해봐야겠죠

 

컨트롤러에서 다음과 같이 작성합니다.

 

 
static Logger logger = LoggerFactory.getLogger(MainController.class);
 

 

컨트롤러 부분에 다음과 같이 간단히 테스트용으로 작성했습니다.

 

핵심 코드는 이부분 입니다.

 
logger.debug("Log4j 테스트입니다.");
 

 

 

그리고 해당 URL을 호출하면 다음과 같이 이클립스 콘솔창에 나타납니다.

 

이렇게 하면 간단한 Log4j 설정이 완료 되었습니다.

 

추후 다른 글에서 Log4j의 세부 설정과 설정에 대한 내용 정리를 다뤄보도록 하겠습니다.

 

감사합니다.