Logging

Heimdall logs concern everything that happens to Heimdall itself (startup, configuration, events, shutdown, and so on). Logs are written to stdout by default in text format.

Configuration

Logging configuration can be adjusted in the log property of heimdall’s configuration and supports following properties.

  • format: string (optional)

    With text and gelf being the available formats. text is the default format. And gelf defines a JSON format adhering to GELF.

    Usage of text (default) format is not recommended for production deployments as it requires more computational resources and is hence slow.
    Example 1. Configuring logging to emit logs using GELD format.
    log:
      format: gelf
  • level: string (optional)

    Following log levels are available: trace, debug, info, warn, error, fatal, panic and disabled. The last one effectively disables logging. You usually do not want to do this. By default, the level is set to error.

    debug and trace log levels are not meant for production as setting log level to one of these will result in a high log verbosity and also affect performance pretty much. Both are only meant for setup analysis and debugging! trace log level will also dump all incoming and outgoing HTTP requests and responses, as well as the contents of objects used in templates. That dump is unedited. That means sensitive data will be available in logs.
    Due to some limitations of the GRPC framework capabilities, setting log level to trace will not dump GRPC requests and responses. If you need these for analysis purposes (e.g. when debugging the integration with envoy proxy), you’ll have to set GODEBUG as well as the GRPC_GO_LOG_VERBOSITY_LEVEL and GRPC_GO_LOG_SEVERITY_LEVEL environment variables.
    Example 2. Configuring logging to emit logs in debug level.
    log:
      level: debug

Last updated on Aug 25, 2023