본문 바로가기
Back-end/JAVA & Spring

날짜별/특정 패키지별 logger 파일 생성 log4j.xml 추가 appender

by 꼬바리 2021. 4. 30.

 

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
반응형

댓글