[자바] - 로그

yeom yaloo·2023년 11월 24일
0

FISA

목록 보기
6/61
post-thumbnail

로그

[로그 기록]

1. 로그 기록용 라이브러리 설정

  • slf4j
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.5</version>
</dependency>

2. 종류

  • log4j
    • 초기에 개발된 로깅 라이브러리
    • XML 또는 속성 파일을 통한 설정 가능
  • logback
    • log4j 후속 버전
    • 로그백은 설정이 Log4j보다 조금 더 간단하고 유연
    • xml 설정 파일 사용 & Groovy도 지원
  • slf4j
    • slf4j 로깅 시스템에 대한 추상화 계층으로 애플리케이션 코드 로깅을 위한 API 사용가능
    • 로그를 자체적으로 출력하는 기능이 없어서 백엔드 로깅 시스템과의 연결 역할을 한다.
    • slf4j는 log4j, logback, java.util.logging 등 다른 로깅 시스템과 함께사용

3. lombok.jar

  • lombok.jar에서도 로그 기록 기능을 제공한다.

4. 로그 레벨

log.trace
log.debug
log.info
log.warn
log.error
log.fatal

[XML을 사용한 로그 설정 방법]

1. Slf4j를 사용하지 않으면

  • public class LogExample { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class); }
  • 위의 코드처럼 해당 loggerFactory를 사용해서 해당 클래스를 로거 대상으로 만드는 귀찮은 작업을 해야 한다.

2. Slf4j를 사용하면?

  • 애너테이션을 붙여주면 해당 작업을 이미 하고 있기 때문에 굳이 우리가 로거 팩토리를 사용해서 해당 객체를 로깅 대상으로 만들어주지 않아도 된다.

3. @Slf4j를 사용해서 로그를 콘솔창에 남기자


import lombok.extern.slf4j.Slf4j;

@Slf4j
public class LogTest {

	public static void main(String[] args) {

		log.debug("dasdasdasd");
		log.trace(null);
		log.info(null);
		log.warn(null);
		log.error(null);
	}
}

출력
17:17 INFO step04.log.LogTest - null
17:17 WARN step04.log.LogTest - null
17:17 ERROR step04.log.LogTest - null

INFO, WARN, ERROR만 출력이 되는데 이때 trace까지 출력을 하고 싶거나 debug를 출력하고 싶다면?

1. logback 라이브러리 추가

<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.2.3</version>
</dependency>

2. logback.xml 파일 추가

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    
    <!--  -->
        <encoder>
            <Pattern>%d{HH:mm} %-5level %logger{36} - %msg%n</Pattern>
        </encoder>
    </appender>

    <root level="debug">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>
  • slf4j는 logback을 사용해서 설정을 진행하든, spring boot에서 application.properties 혹은 yml 파일로 설정을 진행하면 된다.
profile
즐겁고 괴로운 개발😎

0개의 댓글