anchor.diff:  nothing below the error level will be sent to your logging stack. That means that even GELF in this example will receive only error level log messages.
   
   === Configure additional key values
  -Currently, the Keycloak configuration does not support partly dynamic configuration keys, as they are used in quarkus properties, e.g. when defining `quarkus.log.handler.gelf.additional-field.<my-name>.value`.
  -
  -In order to add additional user-defined fields, you can provide them directly through a quarkus.properties file. Please refer to the <@links.server id="configuration"/> guide at section _Using unsupported server options_.
  +Currently, the Keycloak configuration does not support partly dynamic configuration keys, as they are used in quarkus properties. For example, they are used when defining `quarkus.log.handler.gelf.additional-field.<my-name>.value`.
  +
  +To add user-defined fields, you can provide these fields through a quarkus.properties file. Refer to the <@links.server id="configuration"/> guide and the _Using unsupported server options_ section.
   
   </@tmpl.guide>
  
positive.code: [source, bash]
  ----
  2022-03-02 10:36:50,603 INFO  [io.quarkus] (main) Keycloak 18.0.0-SNAPSHOT on JVM (powered by Quarkus 2.7.2.Final) started in 3.615s. Listening on: http://0.0.0.0:8080
  
  ----
  
  === Colors
  Colored console log output for unstructured logs is disabled by default. It may lead to better readability, but can cause problems when shipping logs to external log aggregation systems. If you want to enable or disable color-coded console log output, run following command:
  
  <@kc.start parameters="--log-console-color=<false|true>"/>
  
  == File logging
  Instead of logging to the console, Keycloak also supports unstructured logging to a file.
  
  === Enable file logging
  Logging to a file is disabled by default. To enable it, run the following command:
  
  <@kc.start parameters="--log=console,file"/>
  
  === Configuring path and name of the generated log file
  By enabling the file log handler, a log file named `keycloak.log` will be created inside the `data/log` directory of your Keycloak installation.
  
  To change the location and name of the generated log file, run the following command:
  
  <@kc.start parameters="--log=console,file --log-file=<path-to>/<your-file.log>"/>
  
  Please make sure the location for the logfile is writeable. If not, an error will be thrown at start-up. Keycloak will start correctly, but no file containing logs will be created.
  
  === Configuring the file handler format
  You can configure a different logging format for the file log handler by running the following command:
  
  <@kc.start parameters="--log-file-format=<pattern>"/>
  
  Please see the <<Configuring the console log format>> section in this guide for more information and a table of the available pattern configuration.
  
  == Centralized logging using GELF
  Keycloak is able to send logs to a centralized log management system like Graylog, Logstash (inside the Elastic Stack or ELK - Elasticsearch, Logstash, Kibana) or Fluentd (inside EFK - Elasticsearch, Fluentd, Kibana). Keycloak leverages the features of the https://quarkus.io/guides/centralized-log-management[Quarkus Logging GELF] extension to provide support for these environments.
  
  === Enable the GELF handler
  To enable logging using GELF, you have to add it to the list of activated log handlers.
  
  .Example:
  <@kc.start parameters="--log=console,gelf"/>
  
  === Configure the GELF handler
  
  To configure the Host and Port of your centralized logging system, run the following command and substitute the values with your specific values:
  .Host and port of the GELF server:
  <@kc.start parameters="--log=console,gelf --log-gelf-host=myhost --log-gelf-port=12345"/>
  
  By default, when the GELF handler is enabled, the host is using `localhost` as host value and UDP for communication. If you want to use TCP instead of UDP, prefix the host value with `tcp:`. The Default port is `12201`.
  
  .Include or exclude Stacktraces
  By default, Keycloak includes the complete Stacktrace inside the field `StackTrace`. If you do not want to include this field, run the following command:
  
  <@kc.start parameters="--log=console,gelf --log-gelf-include-stack-trace=false"/>
  
  .Configure the timestamp format
  To change the format of the `timestamp` field, for example to only include the date and time down to seconds, run the following command:
  
  <@kc.start parameters="--log=console,gelf --log-gelf-timestamp-format=\"\'yyyy-MM-dd HH:mm:ss\'\""/>
  You may consider to use the config file instead to avoid escaping:
  
  [source, conf]
  ----
  log-gelf-timestamp-format=yyyy-MM-dd HH:mm:ss
  ----
  
  The default timestamp format is `yyyy-MM-dd HH:mm:ss,SSS`. You can use the https://docs.oracle.com/javase/10/docs/api/java/text/SimpleDateFormat.html[available SimpleDateFormat patterns] to define your needed timestamp.
  
  .Configure the facility
  To set the field `facility` - an indicator of the process or program that is the source of the log messages - to your preferred identifier (Default: keycloak), run the following command:
  
  <@kc.start parameters="--log=console,gelf --log-gelf-facility=MyKeycloak"/>
  
  When you need to configure Keycloak using the CLI and want the facility to contain whitespaces, run the command like below instead:
  
  <@kc.start parameters="--log=console,gelf --log-gelf-facility=\"\'my keycloak\'\""/>
  
  You may consider to use the config file instead to avoid escaping:
  [source, conf]
  ----
  log-gelf-facility=my keycloak
  ----
  
  .Configure the default message size
  To change the default message size of 8kb (8192 bytes) of Keycloaks GELF log messages, run the following command:
  
  <@kc.start parameters="--log=console,gelf --log-gelf-max-message-size=16384"/>
  
  The maximum size of one GELF log message has to be set in Bytes. The example above increases the size to 16kb. When messages exceed the maximum size, GELF will submit the message in multiple chunks.
  
  .Configure sending of message parameters
  By default, Keycloak includes message parameters of the occured log event. These fields are shown in the output as `MessageParam0`, `MessageParam1`, and so on, depending on the parameter length.
  To switch off this behaviour, run the following command:
  
  <@kc.start parameters="--log=console,gelf --log-gelf-include-message-parameters=false"/>
  
  .Configure sending of source code location
  By default, Keycloak includes the fields `SourceClassName`, `SourceMethodName` and `SourceSimpleClassName` in the GELF log messages to make it for example easier to see the location of an occured exception. To stop sending these fields, run the following command:
  
  <@kc.start parameters="--log=console,gelf --log-gelf-include-location=false"/>
  
  === Example: Send logs to Graylog
  The following example shows how to send Keycloak logs to the Graylog centralized logging stack. It assumes you have a container tool like https://www.docker.com/[docker] installed to spin up the `compose.yml`.
  
  ==== Spin up the Graylog stack
  The composed stack consists of:
  
  * Graylog
  
negative.code: 
  When using JSON output, colors are disabled and the format settings set by `--log-console-format` will not apply.
  
  To use unstructured logging, enter the following command:
  
  <@kc.start parameters="--log-console-output=default"/>
  
  