Strukturiertes Logging : Jedes Feld in eine seperate Zeile - aber wie ?

8u3631984

Bekanntes Mitglied
Hallo zusammen ich möchte gerne meiner Spring Boot Anwendung strukturiertes Logging beibringen :
Dazu habe ich mich hier orientiert : https://www.innoq.com/en/blog/structured-logging/

Im Prinzip funktioniert es auch - ABER :
Ich möcht, wenn ich ein Objekt ausgebe, dass alle Felder in seperaten Zeilen ausgegeben werden.

Hier mal meine logback.xml :
Java:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false">

    <appender name="fileAppender" class="ch.qos.logback.core.FileAppender">
        <file>logging\media.json</file>

        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <timestampPattern>yyyy-MM-dd' 'HH:mm:ss.SSS</timestampPattern>
            <fieldNames>
                <timestamp>timestamp</timestamp>
                <thread>thread</thread>
                <logger>[ignore]</logger>
                <version>[ignore]</version>

            </fieldNames>
        </encoder>
    </appender>

    <appender name="jsonConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %highlight(%level{5}) %cyan(%logger{10}) - %msg %n</pattern>
        </encoder>
    </appender>

    <logger name="de.my.cms" level="TRACE"/>

    <root level="WARN">
        <appender-ref ref="jsonConsoleAppender"/>
        <appender-ref ref="fileAppender"/>
    </root>

</configuration>


So verwende ich den Logger :
Code:
  log.info("created {}", kv("image object", imageObject));

Allerdings sind alle Felder in einerZeile enthalten.
So hier :
16:48:17.931 [scheduling-1] INFO d.b.c.m.i.s.ImageObjectService - created image object=ImageObject(id=null, version=0, hashValue=4d12f78bcc395eabc71237b03df20d3f, creationTimeStamp=2023-02-23T11:03:23.829656, filePath=, categories=[], description=null, geoInformation=GeoInformation(id=1, version=0, longitude=0.0, latitude=0.0, country=null, city=null, suburb=null, postcode=null, road=null, house_number=null))

Kann mir jemand helfen ? Vielen Dank
 

Zurück
Oben