Log

Last updated: 2 minutes read.

Prints a log event for each message. Messages always remain unchanged. The log message can be set using function interpolations which allows you to log the contents and metadata of messages.

# Config fields, showing default values
label: ""
log:
  level: INFO
  fields_mapping: |- # No default (optional)
    root.reason = "cus I wana"
    root.id = this.id
    root.age = this.user.age.number()
    root.kafka_topic = meta("kafka_topic")
  message: ""

The level field determines the log level of the printed events and can be any of the following values: TRACE, DEBUG, INFO, WARN, ERROR.

Structured Fields

It is also possible add custom fields to logs when the format is set to a structured form such as json or logfmt with the config field fields_mapping:

pipeline:
  processors:
    - log:
        level: DEBUG
        message: hello world
        fields_mapping: |
          root.reason = "to log"
          root.id = this.id
          root.age = this.user.age
          root.kafka_topic = meta("kafka_topic")          

Fields

level

The log level to use.

Type: string
Default: "INFO"
Options: FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL.

fields_mapping

Used to specify extra fields to add to the log. If log fields are also added with fields then those values will override matching keys from this mapping.

Type: string

# Examples

fields_mapping: |-
  root.reason = "to log"
  root.id = this.id
  root.age = this.user.age.number()
  root.kafka_topic = meta("kafka_topic")  

message

The message to print.

This field supports interpolation functions.

Type: string
Default: ""