pom.xml
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 --> <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4</artifactId> <version>1.16</version> </dependency> <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${org.slf4j-version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${org.slf4j-version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${org.slf4j-version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.3alpha-8</version> </dependency> <dependency> <groupId>org.lazyluke</groupId> <artifactId>log4jdbc-remix</artifactId> <version>0.2.7</version> </dependency>
Log4j의 구조는 다음과 같다.
요소 |
설명 |
Logger |
출력할 메시지를 Appender에 전달. |
Appender |
전달된 로그를 어디에 출력할 지 결정(콘솔 출력, 파일 기록, DB 저장 등). |
Layout |
로그를 어떤 형식으로 출력할 지 결정. |
Log4j는 다음과 같은 로그 레벨을 가진다.
로그레벨 |
설명 |
FATAL |
아주 심각한 에러가 발생한 상태. |
ERROR |
어떠한 요청을 처리하는 중 문제가 발생한 상태. |
WARN |
프로그램의 실행에는 문제가 없지만, 향후 시스템 에러의 원인이 될수 있는 경고성 메시지. |
INFO |
어떠한 상태변경과 같은 정보성 메시지. |
DEBUG |
개발시 디버그 용도로 사용하는 메시지. |
TRACE |
디버그 레벨이 너무 광범위한것을 해결하기 위해서 좀 더 상세한 이벤트. |
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">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p [%c] %m%n" />
</layout>
</appender>
<appender name="console-infolog" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p %m%n" />
</layout>
</appender>
<!-- Application Loggers -->
<logger name="first" additivity="false">
<level value="debug" />
<appender-ref ref="console"/>
</logger>
<!-- Query Loggers -->
<logger name="jdbc.sqlonly" additivity="false">
<level value="INFO"/>
<appender-ref ref="console-infolog"/>
</logger>
<logger name="jdbc.resultsettable" additivity="false">
<level value="INFO"/>
<appender-ref ref="console"/>
</logger>
<!-- Root Logger -->
<root>
<priority value="off"/>
<appender-ref ref="console" />
</root>
</log4j:configuration>
'SpringFramework > 설정' 카테고리의 다른 글
스프링에서 POST/GET 한글처리 (0) | 2018.09.07 |
---|---|
마이바티스(MyBatis) 쿼리 로그 출력 및 정렬하기 (0) | 2018.09.06 |
[spring] classpath* vs classpath 차이점 (0) | 2018.09.05 |
web.xml 기본 설정 (0) | 2018.09.03 |
contextConfigLocation / org.springframework.web.context.ContextLoaderListener(스프링 설정파일 읽기) (0) | 2018.09.03 |