Chapter 4. Configuring JSON logging format

You can change the output format of the console log to JSON to make it easier to process and store the log information for later analysis.

To configure the JSON logging format, you need to add the quarkus-logging-json extension to your Quarkus project. The quarkus-logging-json extension replaces the output format configuration from the console configuration. The console configuration items such as the format string and the color settings will be ignored. Other console configuration items, including those controlling asynchronous logging and the logging level, continue to be applied.

Procedure

  1. Add the quarkus-logging-json extension to the pom.xml file of your application:

    pom.xml

      <dependencies>
        <!-- ... your other dependencies are here ... -->
        <dependency>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-logging-json</artifactId>
        </dependency>
      </dependencies>

  2. (Optional) Set a profile-specific configuration for JSON logging in your application.properties file:

    src/main/resources/application.properties

    %<profile>.<configuration_key>=<value>

    The following example shows how you can disable JSON logging for the development and test profiles:

    src/main/resources/application.properties

    %dev.quarkus.log.console.json=false
    %test.quarkus.log.console.json=false

4.1. JSON logging configuration properties

You can configure the JSON logging extension with the following configuration properties:

Table 4.1. JSON configuration properties

Configuration propertyDescriptionTypeDefault

quarkus.log.console.json

Enable the JSON console formatting extension.

boolean

true

quarkus.log.console.json.pretty-print

Enable pretty printing of the JSON record. [a]

boolean

false

quarkus.log.console.json.date-format

The format for dates. The default string sets the default format to be used.

string

default

quarkus.log.console.json.record-delimiter

Special end-of-record delimiter. By default, newline is used as delimiter.

string

 

quarkus.log.console.json.zone-id

The ID for zone. The default string sets the default zone to be used.

string

default

quarkus.log.console.json.exception-output-type

The output type for exception.

detailed, formatted, detailed-and-formatted

detailed

quarkus.log.console.json.print-details

Enable detailed printing of the logs. The details include the source class name, source file name, source method name, and source line number. [b]

boolean

false

[a] Some processors and JSON parsers might fail to read pretty printed output.
[b] Printing the details can be expensive as the values are retrieved from the caller.