Log4J를 사용하기 위해서 Jar파일을 필요로 한다.
pome.xml 에 디펜던시 추가
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.0.RELEASE</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
<scope>runtime</scope>
</dependency>
</dependencies>
Log4j Listener를 등록한다 ( web.xml )
<pre class="brush: xml;">
<!-- log4J -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
</pre>
Log4j 의 내용을 출력하는 Config 파일은 3가지 방법이 있다.
1. 자바 소스로 직접 기술하는 방법
2. Properties 파일을 작성하여 사용하는 방법
3. xml 파일로 작성하여 사용하는 방법 (꼬바리 기준 가장 권장)
Xml 파일로 작성하는 Log4j 설정 방법은 아래와 같다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration
xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- 콘솔 로그 -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p [%c{5}] %m [%X{userId}]%n" />
</layout>
</appender>
<!-- 날짜별 로그 파일 생성 -->
<appender name="rollingFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/LOG/all.log"/>
<param name="Append" value="true"/>
<!-- param name="MaxFileSize" value="100MB"/ -->
<!-- param name="MaxBackupIndex" value="2"></param -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p [%C{10}] %m [%X{userId}]%n" />
</layout>
</appender>
<!-- 날짜별 로그 파일 생성 -->
<appender name="springFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/LOG/spring.log"/>
<param name="Append" value="true"/>
<!-- param name="MaxFileSize" value="100MB"/ -->
<!-- param name="MaxBackupIndex" value="2"></param -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p [%C{10}] %m [%X{userId}]%n" />
</layout>
</appender>
<!-- 날짜별 로그 파일 생성(에러만) -->
<appender name="errFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Threshold" value="ERROR"/>
<param name="File" value="/LOG/error.log"/>
<param name="Append" value="true"/>
<!-- param name="MaxFileSize" value="100MB"/ -->
<!-- param name="MaxBackupIndex" value="2"></param -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p [%C{1}] %m [%X{userId}]%n" />
</layout>
</appender>
<!-- 특정 패키지 출력 설정 -->
<logger name="org.apache.ibatis">
<level value="DEBUG"/>
</logger>
<logger name="org.springframework">
<level value="DEBUG"/>
<appender-ref ref="springFile" />
</logger>
<logger name="java.sql">
<level value="DEBUG"/>
</logger>
<!-- 기본 출력 설정 -->
<root>
<level value="DEBUG" />
<appender-ref ref="console" />
<appender-ref ref="errFile"/>
<appender-ref ref="rollingFile"/>
</root>
</log4j:configuration>
properties 파일로 설정하는 방법은 아래와 같다.
log4j.rootLogger=DEBUG, file, stdout
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=/LOG/prop.log
log4j.appender.file.Append=true
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %p [%C{10}] %m [%X{userId}]%n
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%C{10}] %m [%X{userId}]%n
728x90
반응형
'Back-end > JAVA & Spring' 카테고리의 다른 글
이클립스 어두운 테마 적용 방법 (0) | 2021.04.30 |
---|---|
JAVA 예외처리 공부 try catch 정리 했던 기록 (0) | 2021.04.30 |
파일로 저장 되는 log4j.xml appender설정 (0) | 2021.04.30 |
[JAVA 예외처리] Throws by 생활코딩 (0) | 2021.04.29 |
[JAVA 예외처리]finally와 resource 다루기 by 생활코딩 (0) | 2021.04.29 |
댓글