0. 이 글을 쓰는 이유
로깅을 정말 아무것도 없는 상태에서 처음부터 적용하려고 하면 어떻게 해야 하나 정리를 하기 위함
공식 도큐먼트 :
logback : https://logback.qos.ch/manual/configuration.html
spring-boot : https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging
1. 특정 디렉토리에 파일로 남기기
logging.file.path로 하는 게 좀 더 좋을 것 같으니 직접 해보자.
저장이 잘 되는 것을 볼 수 있다. 근데 여기서 spring.log가 아니라 내가 지정한 이름을 사용하려면 어떻게 해야 할까
2. 특정 디렉터리에 남긴 로그 파일 이름 지정하기
logback이란걸 설정해 주면 된다고 한다. 아직 정보가 좀 부족한 것 같으니 더 읽어보자
4.8 영역 커스텀 로그 설정이라고 해서 스프링 부트에서는 logback-spring.xml을 만드는 것을 추천한다고 되어있다. 그렇다면 log4j2가 아닌 logback사용을 권장한다고 이해하면 될 것 같다.
더 읽어보니 file저장에 대한 패턴을 저장할 수 있다고 되어있다. 예제도 보고 했지만 뭔가 정보가 부족해서 logback의 공식 도큐먼트를 살펴보았다.
logback의 공식 도큐먼트에서 콘솔에 찍는 부분에 대한 예제가 있었다. 여기서는 logback.xml이나 logback-test.xml이라고 했으니 logback-spring.xml에도 잘 동작할 거라 믿었고 잘 동작하였다.
이제 파일에 저장하려면 어떻게 해야 할지 더 내려보다가 FILE이라는 단어를 발견했다.
하지만 나는 저기서 사용한 logger에 대해 설정해주지 않았으므로 밑에서 appender-ref에 "FILE"을 하나 더 추가해 주면 될 것 같았다.
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>./logs/test.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file : %line] -%kvp- %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
그리고 결과는 성공적이었다.
이제 내가 원하는 디렉터리에 원하는 이름으로 로그파일을 남길 수 있게 되었다.
더 다양한 패턴과 조합, 사용법이 존재할 수 있겠지만 우선 최대한 간단하게 사용하는 것을 목적으로 별도의 검색 없이 공식 도큐먼트만으로 적용하려면 어떻게 해야 할지 적용해 보았다.
'JAVA > spring' 카테고리의 다른 글
스프링 데이터 jpa 공식 문서 읽으면서 끄적끄적 (0) | 2023.04.23 |
---|---|
spring method 요청에 대해 핸들링하기 (0) | 2023.03.13 |
Flyway Placeholder사용(application.yml / properties 파일 읽기) (0) | 2023.02.26 |
spring(boot)의 예외 처리 방식 (0) | 2023.02.24 |
[QueryDSL] BooleanExpression말고 Predicate[]로 조건을 동적으로 처리하기 (0) | 2023.02.11 |