Log

The logging section tunes the logging settings.

Configuration

Example Configuration

This section is intended as an example configuration to help users with a rough contextual layout of this configuration section, it is not intended to explain the options. The configuration shown may not be a valid configuration, and you should see the options section below and the navigation links to properly understand each option individually.

configuration.yml
log:
  level: 'info'
  format: 'text'
  file_path: ''
  keep_stdout: false

Options

This section describes the individual configuration options.

level

string info not required

Defines the level of logs used by Authelia. This level can be set to trace, debug, info, warn, or error. When setting level to trace, you will generate a large amount of log entries and expose the /debug/vars and /debug/pprof/ endpoints which should not be enabled in production.

configuration.yml
log:
  level: 'debug'

format

string text not required

Defines the format of the logs written by Authelia. This format can be set to json or text.

configuration.yml
log:
  format: 'json'

JSON format

{"level":"info","msg":"Logging severity set to info","time":"2020-01-01T00:00:00+11:00"}
{"level":"info","msg":"Authelia is listening for non-TLS connections on 0.0.0.0:9091","time":"2020-01-01T00:00:00+11:00"}

Text format

time="2020-01-01T00:00:00+11:00" level=info msg="Logging severity set to info"
time="2020-01-01T00:00:00+11:00" level=info msg="Authelia is listening for non-TLS connections on 0.0.0.0:9091"

file_path

string not required

Logs can be stored in a file when file path is provided. Otherwise logs are written to standard output. When setting the level to debug or trace this will generate large amount of log entries. Administrators will need to ensure that they rotate and/or truncate the logs over time to prevent significant long-term disk usage.

There are two replacements that exist in this string for the purpose of including the date. The %d value which just uses the RFC3339 layout, and the {datetime} replacement which by default uses the RFC3339 layout, but optionally can be suffixed with the Go Layout semantics in the format of {datetime:<layout>} where <layout> is the layout supported by Go.

File Path Examples

Standard Example:

configuration.yml
log:
  file_path: '/config/authelia.log'

Date Time Example:

configuration.yml
log:
  file_path: '/config/authelia.%d.log'

Date Time Example (with custom layout):

configuration.yml
log:
  file_path: '/config/authelia.{datetime:Mon Jan 2 15:04:05 MST 2006}.log'

keep_stdout

boolean false not required

Overrides the behavior to redirect logging only to the file_path. If set to true logs will be written to both standard output, and the defined logging location.

configuration.yml
log:
  keep_stdout: true