Logging settings in Kibana
editLogging settings in Kibana
editCompatibility 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
editLog 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
editLog 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
editInclude %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
editlogging:
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.
editlogging:
root:
level: debug
Customize specific log records
editHere 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.