2013년 12월 11일 수요일

004. Log4j를 이용한 로그 남기기

/*
Log4j.xml 을 이용한 로그 설정
=============================
이번엔 log4j.xml을 이용한 설정을 이용해 보자.
설정 내용은 거의 같다고 보면 되고, xml형식에 맞춰 작성되는것 밖에
차이가 없다.
파일위치는 properties와 같은 위치에 생성하면 된다.

log4j.xml 내용
==============
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <!-- 콘솔 로그 -->
    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
    <!-- 패턴 레이아웃 설정.. -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%t> [%d{yyyy-MM-dd HH:mm:ss}] [%c{1}] [%L] [%p] %m %n"/>
        </layout>
    </appender>
 
    <!--  날짜별 로그 -->
    <appender name="dailyout" class="org.apache.log4j.DailyRollingFileAppender">
    <!-- 이것은 날짜별로  로그를 남김. 파일명.확장자.DatePattern으로 정의 함-->
        <param name="file" value="dailyout.log"/>
        <param name="Append" value="true"/>
        <param name="DatePattern" value="'.'yyMMdd"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%t> [%d{yyyy-MM-dd HH:mm:ss}] [%c{1}] [%L] [%p] %m %n"/>
        </layout>
    </appender>
   
    <!-- 특정 크기마다 백업하며 로그-->
    <appender name="rolling" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="rolling.log"/>
        <param name="Append" value="true"/>
        <param name="MaxFileSize" value="1kb"/>
       <param name="MaxBackupIndex" value="1"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%t> [%d{yyyy-MM-dd HH:mm:ss}] [%c{1}] [%L] [%p] %m %n"/>
        </layout>
    </appender>
 
    <!-- xml 로그-->
    <!-- xml형식으로 로그를 남김 -->
    <appender name="xmlout" class="org.apache.log4j.FileAppender">
        <param name="file" value="log4jxml.xml"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.xml.XMLLayout"/>
    </appender>
   
    <root>
        <level value="WARN"/>
        <appender-ref ref="dailyout"/>
    </root>
</log4j:configuration>

이번엔 특별하게 xml형식의 로그까지 설정했다.
최 하단에 있는 rootLogger 설정에서 사용할 로그를 모두 설정하였다.


xml을 이용해 일정 값을 가져온다던지 .
아니면 원격에 있는 xml 로그정보를 확인할 일이 생긴다면
xml log로 남기는것도 괜찮아 보인다.
*/
import org.apache.log4j.*;

public class Log4J_Sample004_UseXML {
static Logger logger = Logger.getLogger(Log4J_Sample004_UseXML.class);
public static void main(String arg[]) {
// 로그를 계속 쌓아두기 위해 MAX_COUNT값을 정의 함.
final int MAX_COUNT = 10;
for (int i=0;i<MAX_COUNT;i++) {
// 각각의 레벨에 맞춰 로그를 남김
logger.debug("debug 로그");
logger.info("info 로그");
logger.warn("warn 로그");
logger.error("error 로그");
logger.fatal("fatal 로그");
}
System.out.println("끝~~~~~~");
}
}

댓글 없음:

댓글 쓰기