中文 English

Logback custom adds logstash field

Published: 2023-04-02

steps

If you want to add custom fields to the output JSON, you need to configure the arguments parameter.

<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
        <providers>
            <pattern>
                <pattern>
                    {
                    "timestamp": "%date{\"yyyy-MM-dd HH:mm:ss\"}",
                    "log_level": "%level",
                    "class_name": "%class",
                    "thread": "%thread",
                    "message": "%message",
                    "stack_trace": "%exception{5}"
                    }
                </pattern>
            </pattern>
            <arguments/>
        </providers>
    </encoder>

Markers provided by Markers

import static net.logstash.logback.marker.Markers.*

 /*
 * Add "name":"value" to the JSON output.
 */
logger.info(append("name", "value"), "log message");

/*
 * Add "name1":"value1","name2":"value2" to the JSON output by using multiple markers.
 */
logger.info(append("name1", "value1").and(append("name2", "value2")), "log message");

source