Logging Format

Axon Server logging is based on Spring logging. For this reason you can customize logging configuration simply by using system properties.

JSON format

If you want to have your logs in JSON format, you can customize the Logback configuration. The property that needs to be configured is logging.config with a path to your custom logback.xml. An example how to configure this property would be logging.config=logback.xml In case you have not already configured logback.xml for Axon Server, a good starting point for JSON logging format is this example

The <layout> XML tag is the one that configures the format of the output.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
                <timestampFormat>yyyy-MM-dd'T'HH:mm:ss.SSSX</timestampFormat>
                <timestampFormatTimezoneId>Etc/UTC</timestampFormatTimezoneId>
                <appendLineSeparator>true</appendLineSeparator>

                <jsonFormatter class="ch.qos.logback.contrib.jackson.JacksonJsonFormatter">
                    <prettyPrint>false</prettyPrint>
                </jsonFormatter>
            </layout>
        </encoder>
    </appender>

    <logger name="io.axoniq" level="info" additivity="false">
        <appender-ref ref="STDOUT"/>
    </logger>

    <logger name="io.axoniq.axonserver.AxonServer" level="info" additivity="false">
        <appender-ref ref="STDOUT"/>
    </logger>
    <logger name="io.axoniq.axonserver.grpc.Gateway" level="info" additivity="false">
        <appender-ref ref="STDOUT"/>
    </logger>
    <logger name="io.axoniq.axonserver.grpc.internal.MessagingClusterServer" level="info" additivity="false">
        <appender-ref ref="STDOUT"/>
    </logger>
    <logger name="org.springframework.boot.web.embedded.tomcat.TomcatWebServer" level="info" additivity="false">
        <appender-ref ref="STDOUT"/>
    </logger>

    <logger name="org.springframework.http.converter.json.Jackson2ObjectMapperBuilder" level="error" additivity="false">
        <appender-ref ref="STDOUT"/>
    </logger>

    <logger name="org.hibernate.orm.deprecation" level="error" additivity="false">
        <appender-ref ref="STDOUT"/>
    </logger>

    <root level="warn">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>