https://logback.qos.ch/index.html
Logback Home
Logback Project Logback is intended as a successor to the popular log4j project, picking up where log4j 1.x leaves off. Logback's architecture is quite generic so as to apply under different circumstances. At present time, logback is divided into three mod
logback.qos.ch
logback은 기존의 log4j을 개선한 후속버전으로 내부로직을 새로 개선하여 log4j보다 10배이상 빠르고 가볍고 메모리 공간또한 적게 차지한다.
logback은 logback-core, logback-classic, logback-access로 세가지 모듈로 구성되어있다.
logback을 통해서 로그 관리하기
logback을 사용하기위해 logback-core, logback-classic , slf4j-api 라이브러리를 설치한다.(스프링의 경우 디펜던시 추가)
public class TestServer {
public static void main(String args[]) {
Logger logger = LoggerFactory.getLogger(TestServer.class);
logger.error("error: this is error.");
logger.warn("warn: this is warn.");
logger.info("info: this is info.");
logger.debug("debug this is debug.");
logger.trace("trace this is trace.");
}
}
slf4j의 LoggerFactory 메소드를 이용해 Logger객체를 생성한뒤 Log Level에 따라 원하는 로그를 출력한다.
로그 레벨은 error ~ trace까지 오름차순으로 있으며, trace 레벨은 굉장히 자세하게 로그가 출력되기때문에 운영환경에서는 사용하지 않는것이 좋다.
서비스 곳곳에서 원하는 로그를 출력하는 코드를 작성해준뒤, 특정 디렉토리의 경로에 로그 파일을 만들어 보관하는것이 대다수이므로 Logback에 대한 Configuration 설정을 xml파일로 만들어 properties 디렉토리에 넣어 사용한다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_HOME" value="D:/test/logs"/>
<property name="contextName" value="testlog"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%5p [%d{yyyy-MM-dd HH:mm:ss}] %m%n</Pattern>
</layout>
</appender>
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/${contextName}.%d{yyyy-MM-dd}.log</FileNamePattern>
<maxHistory>10</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%5p [%d{yyyy-MM-dd HH:mm:ss}] %m%n </Pattern>
</layout>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
<appender-ref ref="ROLLING" />
</root>
</configuration>
logback의 configuration 설정중
appender는 원하는 기능에 맞춰 사용한다.
ConsoleAppenr : 발생된 log를 Console에 출력한다.
FileAppender : 발생된 log를 File에 저장한다.
SMTPAppender : log를 메일로 발송한다.
DBAppender : log를 DB에 저장한다.
각각의 아키텍처들은 아래 공식문서에서 참고하여 사용하면 된다.
https://logback.qos.ch/manual/appenders.html
Chapter 4: Appenders
There is so much to tell about the Western country in that day that it is hard to know where to start. One thing sets off a hundred others. The problem is to decide which one to tell first. —JOHN STEINBECK, East of Eden Chapter 4: Appenders What is an Ap
logback.qos.ch
위의 Configuration 설정을 한뒤, Test를 해보면, 정상적으로 원하는 경로의 폴더에 log파일들이 쌓이고,
특정 날짜 별로 log파일을 관리할수있다.
'Category > JAVA' 카테고리의 다른 글
[JAVA] 여러가지 측면에서의 인코딩 방식 (0) | 2024.08.27 |
---|---|
[Design Pattern] Adapter Pattern의 실제 사용예시 (0) | 2024.05.23 |
Apache Commons Library (0) | 2024.05.09 |
[JAVA] 네트워크, Server와 socket (0) | 2023.11.15 |
[JAVA] thread란? (0) | 2023.11.15 |