이번 포스팅에서는 Elastic Stack을 연동하는 방법에 대해서 포스팅하려고한다. 서버에 Elastic Stack을 설치하지 않았다면 여기를 참고하면된다.
1. logstash dependency 추가 (build.gradle)
implementation 'net.logstash.logback:logstash-logback-encoder:6.6'
2. logback-spring.xml 파일 추가
logback-spring.xml을 resources 폴더 아래에 추가한다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%-5level %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}[%-5level] : %msg%n</pattern>
</encoder>
</appender>
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<file>mylog.txt</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>[%-5level] %d{HH:mm:ss.SSS} %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- Log Stash 사용시 사용할 TCP 통신 정보 -->
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>서버ip정보:logstash포트</destination>
<encoder class="net.logstash.logback.encoder.LogstashEncoder"></encoder>
</appender>
<!-- root레벨 설정 -->
<root level="INFO">
<appender-ref ref="console" />
<appender-ref ref="stash" />
</root>
</configuration>
3. application.yml logback-spring.xml 추가
logging:
config: classpath:logback-spring.xml
4. spring-cloud-starter-sleuth 추가(build.gradle)
만약 로그를 traceId, spanId별로 보고 싶다면 spring-cloud-starter-sleuth 의존성을 추가한다. msa 환경에서 로그를 추적하기 위해서 많이 사용한다.
implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-sleuth', version: '3.0.4'
5. Kibana 조회
Kibana에서 조회하려면 index patterns을 생성 후 로그는 Discover에서 조회할 수 있는데 이 과정은 생략하도록 하겠다.
로그를 다음과 같이 조회할 수 있다.
'Spring Boot' 카테고리의 다른 글
Spring Oauth2.0 Google 로그인 구현 (1) (0) | 2022.01.24 |
---|---|
[Spring Boot] API 스프링부트 캐싱 적용 (0) | 2021.11.21 |
[Spring] @Transactional 어노테이션 (0) | 2021.10.10 |
[Spring Boot] Resource 추상화 (0) | 2020.08.27 |
[Spring Boot] @Valid를 이용한 유효성 검사 (0) | 2020.08.09 |