hyelie
hyelie
Hyeil Jeong
       
글쓰기    관리    수식입력
  • 전체보기 (495)
    • PS (283)
      • Algorithm (28)
      • PS Log (244)
      • Contest (6)
      • Tips (5)
    • Development (52)
      • Java (14)
      • Spring (23)
      • SQL (2)
      • Node.js (2)
      • Socket.io (3)
      • Study (4)
      • Utils (4)
    • DevOps (36)
      • Git (5)
      • Docker (4)
      • Kubernetes (2)
      • GCP (3)
      • Environment Set Up (8)
      • Tutorial (12)
      • Figma (2)
    • CS (74)
      • OOP (7)
      • OS (24)
      • DB (2)
      • Network (24)
      • Architecture (0)
      • Security (2)
      • Software Design (0)
      • Parallel Computing (15)
    • Project (15)
      • Project N2T (5)
      • Project ASG (0)
      • Project Meerkat (1)
      • Model Checking (7)
      • Ideas (2)
    • 내가 하고싶은 것! (34)
      • Plan (16)
      • Software Maestro (10)
      • 취준 (8)
hELLO · Designed By 정상우.
hyelie
Development/Spring

[Spring] slf4j를 이용한 spring logging

Development/Spring

[Spring] slf4j를 이용한 spring logging

로그의 목적은 아래 2가지 정도가 있다.

- 서비스 동작 상태 파악

- 장애 파악 및 알림

 

logging은 slf4j 등 로그 라이브러리를 사용할 것이다.

 

로그 레벨

- fatal : 어플리케이션 종료까지 만드는 error.

- error : 의도하지 않은 오류 발생, 종료는 안 됨.

- warn

- info : 서비스 동작 상태

- debug : 개발자가 보기 위한 것

- trace

 

인데, '의도하지 않은 에러'를 나타내는(ex. database connection error) error, 기록을 남기기 위한 info 2개를 사용하면 될 것 같다. 또 로그는 파일로 작성할 거고, 너무 많이 쌓이면 다른 것으로 빼 주어야 한다.

 

https://victorydntmd.tistory.com/173?category=698080

 

위 블로그에서 가져왔다.

 

일단 의존성 추가해 준다.

 

build.gradle

implementation 'org.slf4j:slf4j-api'
implementation 'ch.qos.logback:logback-classic'

 

다음으로 resources에 log를 어떻게 쓸지에 대한 data를 넣어야 한다.

 

main/resources/logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 콘솔로 로그를 남김 -->
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<!-- 로그 메시지 패턴 -->
<Pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n
</Pattern>
</encoder>
</appender>
<!-- 파일로 로그를 남김 -->
<appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>.\Logs\data.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n
</Pattern>
</encoder>
<!-- 로그를 남기는 파일의 용량이 10KB가 넘으면 이를 압축 파일로 만들고 새로 로그 파일로 만들라는 정책 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10KB</MaxFileSize>
</triggeringPolicy>
<!-- 파일을 덮어쓰는 정책 -->
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>.\Logs\data.%i.log.zip</FileNamePattern>
<!--
MinIndex가 1이고, MaxIndex가 10이므로, 위의 파일 이름 패턴에 따라 아래의 로그 파일이 생길 것이다.
logexample2.1.log.zip logexample2.2.log.zip .... logexample2.10.log.zip
이 상태에서 또 10KB가 넘으면 logexample2.1.log.zip이 된다.
-->
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
</appender>
<!--
com.bizkicks.backend 아래 패키지 로그들만 consoleAppender, fileAppender 방법으로 로그를 남긴다.
info 이상의 레벨의 log만 남긴다.
-->
<logger name="com.bizkicks.backend" level="info" additivity="false">
<appender-ref ref="fileAppender" />
</logger>
<!-- root는 글로벌 로거를 의미하며, 위의 logger에 해당하지 않으면 root 로거가 실행된다. -->
<root level="warn">
<appender-ref ref="consoleAppender" />
</root>
</configuration>

 

이후 slf4j annotation을 붙이고 log.info 또는 log.error를 사용하면 된다.

@Slf4j
public class MyClass{
public void MyFunction(){
...
log.info("info log");
log.error("error log");
...
}
}

 

'Development > Spring' 카테고리의 다른 글

[Spring] Spring image 업로드 / 다운로드(리턴) / 인코딩  (0) 2022.10.05
[Spring] Spring exception handler 추가 - ambiguous handler  (0) 2022.10.05
[Spring + Swagger] Swagger 사용  (0) 2022.10.05
[Spring] Custom Exception Handler  (0) 2022.10.05
[Spring + Jwt] Spring Boot + Spring Security + Redis + Jwt를 이용한 회원가입 및 로그인  (0) 2022.10.05
    hyelie
    hyelie

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.