Skip to content

Commit b6c1307

Browse files
Provide CustomFieldSupplier example in Sample
Add a message counter to Spring Boot sample app to show creation of additional fields by custom code. It counts all messages generated by the sample application. This is also helpful to detect missing messages in downstream logging systems. Signed-off-by: Karsten Schnitter <[email protected]>
1 parent 43324dc commit b6c1307

File tree

3 files changed

+54
-18
lines changed

3 files changed

+54
-18
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.sap.hcp.cf.logging.sample.springboot.statistics;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
import java.util.concurrent.atomic.AtomicLong;
6+
7+
import com.sap.hcp.cf.logging.common.serialization.ContextFieldSupplier;
8+
9+
public class StatisticsContextFieldSupplier implements ContextFieldSupplier {
10+
11+
private static final String KEY = "message_count";
12+
13+
private static AtomicLong count = new AtomicLong();
14+
15+
@SuppressWarnings("serial")
16+
@Override
17+
public Map<String, Object> get() {
18+
return new HashMap<String, Object>() {
19+
{
20+
put(KEY, count.incrementAndGet());
21+
}
22+
};
23+
}
24+
25+
}

sample-spring-boot/src/main/resources/log4j2.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77

88
<Appenders>
99
<Console name="STDOUT-JSON" target="SYSTEM_OUT" follow="true">
10-
<JsonPatternLayout charset="utf-8" />
10+
<JsonPatternLayout charset="utf-8">
11+
<contextFieldSupplier class="com.sap.hcp.cf.logging.sample.springboot.statistics.StatisticsContextFieldSupplier" />
12+
<!-- Uncomment to send message count as nested custom field: -->
13+
<!-- <customField mdcKeyName="message_count" /> -->
14+
</JsonPatternLayout>
1115
</Console>
1216
<Console name="STDOUT" target="SYSTEM_OUT" follow="true">
1317
<PatternLayout
Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,29 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!DOCTYPE xml>
33
<configuration debug="false" scan="false">
4-
<turboFilter class="com.sap.hcp.cf.logback.filter.DynamicLevelPrefixLoggerTurboFilter" />
5-
<!-- write logs to console -->
6-
<appender name="STDOUT-JSON" class="ch.qos.logback.core.ConsoleAppender">
7-
<!-- encode and enrich full message with the required fields/tags -->
8-
<encoder class="com.sap.hcp.cf.logback.encoder.JsonEncoder" />
9-
</appender>
10-
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
11-
<encoder>
12-
<pattern>%d %-5level [%thread] %logger{0} [%mdc]>: %msg
13-
%replace(%xEx){'\n', ' | '}%nopex%n</pattern>
14-
</encoder>
15-
</appender>
16-
<!-- default log level for all loggers is INFO by default -->
17-
<root level="${LOG_ROOT_LEVEL:-INFO}">
18-
<appender-ref ref="STDOUT-JSON" />
19-
</root>
4+
<turboFilter
5+
class="com.sap.hcp.cf.logback.filter.DynamicLevelPrefixLoggerTurboFilter" />
6+
<!-- write logs to console -->
7+
<appender name="STDOUT-JSON"
8+
class="ch.qos.logback.core.ConsoleAppender">
9+
<!-- encode and enrich full message with the required fields/tags -->
10+
<encoder class="com.sap.hcp.cf.logback.encoder.JsonEncoder">
11+
<contextFieldSupplier>com.sap.hcp.cf.logging.sample.springboot.statistics.StatisticsContextFieldSupplier</contextFieldSupplier>
12+
<!-- Uncomment to send message count as nested custom field: -->
13+
<!-- <customFieldMdcKeyName>message_count</customFieldMdcKeyName> -->
14+
</encoder>
15+
</appender>
16+
<appender name="STDOUT"
17+
class="ch.qos.logback.core.ConsoleAppender">
18+
<encoder>
19+
<pattern>%d %-5level [%thread] %logger{0} [%mdc]>: %msg
20+
%replace(%xEx){'\n', ' | '}%nopex%n</pattern>
21+
</encoder>
22+
</appender>
23+
<!-- default log level for all loggers is INFO by default -->
24+
<root level="${LOG_ROOT_LEVEL:-INFO}">
25+
<appender-ref ref="STDOUT-JSON" />
26+
</root>
2027

21-
<logger name="com.sap.hcp.cf" level="${LOG_HCP_CF_LEVEL:-INFO}" />
28+
<logger name="com.sap.hcp.cf" level="${LOG_HCP_CF_LEVEL:-INFO}" />
2229
</configuration>

0 commit comments

Comments
 (0)