Skip to content

Commit 4db97f3

Browse files
add logback and logger config
1 parent d9b0256 commit 4db97f3

File tree

2 files changed

+92
-24
lines changed

2 files changed

+92
-24
lines changed

build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ dependencies {
5454
runtimeOnly 'io.micrometer:micrometer-registry-prometheus'
5555
implementation 'org.springframework.boot:spring-boot-starter-actuator'
5656

57+
// elk
58+
implementation 'net.logstash.logback:logstash-logback-encoder:8.0'
59+
5760
// testcontainers
5861
testImplementation 'org.testcontainers:junit-jupiter'
5962
testImplementation 'org.testcontainers:postgresql'

src/main/resources/logback-spring.xml

Lines changed: 89 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<configuration>
3-
<property name="projectName" value="template-service"/>
4-
<property name="defaultPattern" value="%d{ISO8601} [${projectName}] %highlight(%-5level) [%blue(%t)] %yellow(%C{1}): %msg%n%throwable"/>
3+
<property name="projectName" value="template-service-b"/>
4+
<property name="defaultPattern"
5+
value="%d{ISO8601} [${projectName}] [%X{traceId:-}] [%X{spanId:-}] %highlight(%-5level) [%blue(%t)] %yellow(%C{1}): %msg%n%throwable"/>
56

67
<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
78
<encoder>
@@ -10,26 +11,90 @@
1011
</pattern>
1112
</encoder>
1213
</appender>
13-
<!-- root-->
14-
<root level="info">
15-
<appender-ref ref="Console" />
16-
</root>
17-
<!-- hibernate-->
18-
<logger name="org.hibernate" level="trace" additivity="false" >
19-
<appender-ref ref="Console" />
20-
</logger>
21-
<logger name="org.hibernate.type" level="all" additivity="false" >
22-
<appender-ref ref="Console" />
23-
</logger>
24-
<logger name="org.hibernate.SQL" level="all" additivity="false" >
25-
<appender-ref ref="Console" />
26-
</logger>
27-
<!-- jdbc-->
28-
<logger name="org.springframework.jdbc" level="trace" additivity="false" >
29-
<appender-ref ref="Console" />
30-
</logger>
31-
<!-- application-->
32-
<logger name="com.softeno" level="trace" additivity="false">
33-
<appender-ref ref="Console" />
34-
</logger>
14+
15+
<springProfile name="dev">
16+
<root level="info">
17+
<appender-ref ref="Console"/>
18+
</root>
19+
<logger name="com.softeno" level="trace" additivity="false">
20+
<appender-ref ref="Console"/>
21+
</logger>
22+
</springProfile>
23+
24+
<springProfile name="!dev">
25+
<property name="LOGSTASH_HOST" value="${logstash.host:-logstash}" />
26+
<property name="LOGSTASH_PORT" value="${logstash.port:-50000}" />
27+
<property name="LOGS" value="./logs"/>
28+
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
29+
<destination>${LOGSTASH_HOST}:${LOGSTASH_PORT}</destination>
30+
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
31+
<providers>
32+
<mdc/>
33+
<pattern>
34+
<pattern>
35+
{
36+
"application": "${projectName}",
37+
"timestamp": "%d{yyyy-MM-dd'T'HH:mm:ss.SSSZZ}",
38+
"logger": "%logger",
39+
"trace": "%X{traceId:-}",
40+
"span": "%X{spanId:-}",
41+
"thread": "%thread",
42+
"level": "%level",
43+
"message": "%message"
44+
}
45+
</pattern>
46+
</pattern>
47+
<stackTrace>
48+
<throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
49+
<maxDepthPerThrowable>2048</maxDepthPerThrowable>
50+
<maxLength>32768</maxLength>
51+
<shortenedClassNameLength>256</shortenedClassNameLength>
52+
<rootCauseFirst>true</rootCauseFirst>
53+
</throwableConverter>
54+
</stackTrace>
55+
</providers>
56+
</encoder>
57+
</appender>
58+
<appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
59+
<file>${LOGS}/spring-boot-logger.log</file>
60+
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
61+
<Pattern>%d %p %C [%t] %m%n</Pattern>
62+
</encoder>
63+
64+
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
65+
<fileNamePattern>
66+
${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log
67+
</fileNamePattern>
68+
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
69+
<maxFileSize>10MB</maxFileSize>
70+
</timeBasedFileNamingAndTriggeringPolicy>
71+
</rollingPolicy>
72+
</appender>
73+
<root level="info">
74+
<appender-ref ref="RollingFile"/>
75+
<appender-ref ref="Console"/>
76+
<appender-ref ref="logstash"/>
77+
</root>
78+
<logger name="com.softeno" level="trace" additivity="false">
79+
<appender-ref ref="RollingFile"/>
80+
<appender-ref ref="Console"/>
81+
<appender-ref ref="logstash"/>
82+
</logger>
83+
<!-- hibernate-->
84+
<logger name="org.hibernate" level="trace" additivity="false" >
85+
<appender-ref ref="Console" />
86+
</logger>
87+
<logger name="org.hibernate.type" level="all" additivity="false" >
88+
<appender-ref ref="Console" />
89+
</logger>
90+
<logger name="org.hibernate.SQL" level="all" additivity="false" >
91+
<appender-ref ref="Console" />
92+
</logger>
93+
<!-- jdbc-->
94+
<logger name="org.springframework.jdbc" level="trace" additivity="false" >
95+
<appender-ref ref="Console" />
96+
</logger>
97+
<!-- -->
98+
</springProfile>
99+
35100
</configuration>

0 commit comments

Comments
 (0)