* 로깅툴을 사용하는 이유
- System.out.println() 명령어는 IO 리소스를 많이 사용하여 시스템이 느려질 수 있음
- 로그를 파일로 저장하여 분석할 필요가 있음
* 로깅툴의 종류
- commons-logging : 스프링 3에서 사용하던 로깅툴
- log4j : 효율적인 메모리 관리로 그동안 많이 사용되었음
- logback : log4j 보다 성능이 더 우수하여 최근에 많이 사용되고 있음
* SLF4J : logback을 사용하기 위한 인터페이스
* 설정방법
1. pom.xml 의 slf4j-version 을 1.7.21 로 수정
<properties>
<java-version>1.8</java-version>
<org.springframework-version>4.3.0.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.7.21</org.slf4j-version>
</properties>
2. pom.xml 에 라이브러리 추가
<!-- logback 로깅 관련 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>
3. src/main/resources 에 logback.xml 파일 작성
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-4level [%logger.%method:%line]-
%msg%n</pattern>
</layout>
</appender>
<appender name="LOGFILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/WEB-INF/logback.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 30일 지난 파일은 삭제한다. -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4level [%logger.%method:%line]
- %msg %n</pattern>
</encoder>
</appender>
<!-- 로그의 레벨( 지정된 로그 레벨 이상만 수집 ) : DEBUG < INFO < WARN < ERROR < FATAL -->
<logger name="myweb" additivity="false">
<level value="INFO" />
<appender-ref ref="LOGFILE" />
<appender-ref ref="CONSOLE" />
</logger>
<root>
<level value="INFO" />
<appender-ref ref="CONSOLE" />
</root>
</configuration>
4. 로그를 수집할 클래스에 변수 선언
private static final Logger logger = LoggerFactory.getLogger(클래스이름.class);
private : 외부에서 로그를 가로채지 못하도록 하기 위해서
static final : 로그 내용이 바뀌지 않으므로
5. 로그를 수집할 method에서 로그 수집 명령어 호출
logger.info("로그 타이틀", 출력할 값);
* 로그의 level
1. Debug : Debug, Info, Warn, Error 포함
2. Info : Info, Warn, Error 포함
3. Warn : Warn, Error 포함
4. Error : Error만 포함
'자바' 카테고리의 다른 글
이클립스에서 오라클11g jdbc DBCP 연결설정. (0) | 2016.03.08 |
---|---|
[JAVA] IO 객체 직렬화. (0) | 2016.02.26 |
자바에서 발생하는 에러. (0) | 2015.10.27 |
[eclipse/java][4강]객체지향 의 시작-1 (0) | 2015.09.23 |
자바 처음시작할때 알아둬야할 사항<준비물> (0) | 2014.12.25 |