-
spring boot datadog json으로 log 남기기.Computer Science/Spring boot 2022. 8. 5. 16:31
datadog.yaml에서 log 기능을 우선 enable 해준다.
/etc/datadog-agent/datadog.yaml
에 대부분 위치해 있다.
logs_enabled: true
로 변경 해준뒤 저장하고,
datadog-agent/con.d 에 java.yaml 파일을 만들어준다.
#Log section logs: - type: file path: "/path/to/your/java/log.log" service: java source: java sourcecategory: sourcecode # For multiline logs, if they start by the date with the format yyyy-mm-dd uncomment the following processing rule #log_processing_rules: # - type: multi_line # name: new_log_start_with_date # pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
이런뒤 datadog-agent를 재실행시켜주면 서버에서 작업 할 것은 끝이 난다.
systemctl restart datadog-agent
datadog-agent status를 입력해보면
logs agent에 정상 적용이 되어있는 것을 확인할수 있다.
==========
Logs Agent
==========
Reliable: Sending compressed logs in HTTPS to agent-http-intake.logs.us5.datadoghq.com on port 443
BytesSent: 3.298545e+06
EncodedBytesSent: 56682
LogsProcessed: 8602
LogsSent: 8553
java
----
- Type: file
Path: /home/app/lof.log
Status: OK
Inputs:
/home/app/lof.log
BytesRead: 1.697377e+06
Average Latency (ms): 1
24h Average Latency (ms): 1
Peak Latency (ms): 49
24h Peak Latency (ms): 49spring boot json log 설정.
<dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>6.6</version> </dependency>
우선 위에 설정 만으로 log 파일을 읽어들여 datadog에서 확인 할 수 있지만 편의성을 위해 log 파일을 json으로 변경해서 내 보내려고 한다.
build.gradle을 설정해 주었다면 resources 아래에
logback-spring.xml 파일을 만들어준다.
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder --> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-3level %logger{5} - %msg %n</pattern> </encoder> </appender> <appender name="STDOUT_JSON" class="ch.qos.logback.core.ConsoleAppender"> <!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder --> <encoder class="net.logstash.logback.encoder.LogstashEncoder" /> </appender> <springProfile name="local"> <root level="INFO"> <appender-ref ref="STDOUT"/> </root> </springProfile> <springProfile name="devserver"> <root level="INFO"> <appender-ref ref="STDOUT_JSON"/> </root> </springProfile> <springProfile name="mainserver"> <root level="INFO"> <appender-ref ref="STDOUT_JSON"/> </root> </springProfile> </configuration>
local에서는 진행 할 때 log를 json으로 안하고 할려고 하기에 저렇게 설정을 해주었다.
'Computer Science > Spring boot' 카테고리의 다른 글
Spring boot 비동기 처리 (Aysnc) (0) 2022.09.29 spring boot 에서 JWT 사용하기. (0) 2022.09.04 Cerbot을 통한 SSL 발급받아 Spring boot에 적용하기 (0) 2022.07.27 Spring boot에 APM(dataDog) 적용하기. (0) 2022.07.26 Spring boot 시작 시 함수 실행하고 싶을 때. (0) 2022.07.17