Logging settings in Kibana

edit

Logging settings in Kibana

edit

Compatibility with the legacy logging system is assured until the end of the v7 version. All log messages handled by root context (default) are forwarded to the legacy logging service. The logging configuration is validated against the predefined schema and if there are any issues with it, Kibana will fail to start with the detailed error message.

When you switch to the new logging configuration, you will start seeing duplicate log entries in both formats. These will be removed when the default appender is no longer required.

Here are some configuration examples for the most common logging use cases:

Log to a file

edit

Log the default log format to a file instead of to stdout (the default).

logging:
  appenders:
    file:
      type: file
      fileName: /var/log/kibana.log
      layout:
        type: pattern
  root:
    appenders: [default, file]

Log in json format

edit

Log the default log format to json layout instead of pattern (the default). With json layout log messages will be formatted as JSON strings in ECS format that includes a timestamp, log level, logger, message text and any other metadata that may be associated with the log message itself

logging:
  appenders:
    json-layout:
      type: console
      layout:
        type: json
  root:
    appenders: [default, json-layout]

Log with meta to stdout

edit

Include %meta in your pattern layout:

logging:
  appenders:
    console-meta:
      type: console
      layout:
        type: pattern
        pattern: "[%date] [%level] [%logger] [%meta] %message"
  root:
    appenders: [default, console-meta]

Log Elasticsearch queries

edit
logging:
  appenders:
    console_appender:
      type: console
      layout:
        type: pattern
        highlight: true
  root:
    appenders: [default, console_appender]
    level: warn
  loggers:
    - name: elasticsearch.query
      level: debug

Change overall log level.

edit
logging:
  root:
    level: debug

Customize specific log records

edit

Here is a detailed configuration example that can be used to configure loggers, appenders and layouts:

logging:
  appenders:
    console:
      type: console
      layout:
        type: pattern
        highlight: true
    file:
      type: file
      fileName: /var/log/kibana.log
    custom:
      type: console
      layout:
        type: pattern
        pattern: "[%date][%level] %message"
    json-file-appender:
      type: file
      fileName: /var/log/kibana-json.log
      layout:
        type: json

  root:
    appenders: [default, console, file]
    level: error

  loggers:
    - name: plugins
      appenders: [custom]
      level: warn
    - name: plugins.myPlugin
      level: info
    - name: server
      level: fatal
    - name: optimize
      appenders: [console]
    - name: telemetry
      appenders: [json-file-appender]
      level: all
    - name: metrics.ops
      appenders: [console]
      level: debug

Here is what we get with the config above:

Context name Appenders Level

root

console, file

error

plugins

custom

warn

plugins.myPlugin

custom

info

server

console, file

fatal

optimize

console

error

telemetry

json-file-appender

all

metrics.ops

console

debug

If you modify root.appenders, make sure to include default.