Spring - Spring FrameWork 과 Log4J 사용해서 Log출력하기

Published on: 2009. 9. 13. 14:29 by louis.dev


위 그림과 같이 Log4J를 사용하면 무슨 Sql문을 사용하는지 무슨 데이터가 parameter로 넘어오는지 DB를 갔다 왔을때 어떤 데이터를 불러오는지를 이클립스의 Consol창을 통해 한번에 알 수 있다.
스프링에서는 Log4J를 설정하는 방법이 있어서 소개해 본다.

1. http://logging.apache.org/log4j/1.2/download.html 
다음 사이트에서 apache-log4j-1.2.15.zip를 다운 받고 압축을 푼다.
그 안에 있는 log4j-1.2.14.jar 파일을 압축 풀고 이클립스의 lib폴더에 넣는다.

2. log4j.properties 파일을 생성한다.
log4j.properties 파일은 콘솔에 로그가 어떻게 형태로 찍힐 것인지를 세팅하는 레이아웃을 잡아준다. 이런 설정은 구글 검색을 통해서 쉽게 얻을 수 있다. 물론 아래의 내용처럼 해도 된다.
properties파일은 #으로 시작하면 주석으로 처리한다.

# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootCategory=DEBUG, stdout

log4j.debug=false

#Console log
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.ImmediateFlush=true
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout.ConversionPattern=[%p] (%F) - %m%n


3. web.xml 파일에 log4j를 로딩할 Listener와 log4j.perperties 파일위치를 정해주는 설정을 해준다.

<listener> 
   <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<context-param>
  <param-name>log4jConfigLocation</param-name>
  <param-value>/WEB-INF/config/log4j.properties</param-value>
</context-param>