# Logger Configuration

Loggers record the state of every monitor after each interval.

Loggers are defined in the main configuration file, which by default is `monitor.ini`. The section name is the name of your logger, which you should then add to the `loggers` configuration value.

## Common options

These options are common to all logger types.

type
  Type:

    string

  Required:

    true

  the type of the logger; one of those in the list below.

depend
  Type:

    comma-separated list of string

  Required:

    false

  Default:

    none

  a list of monitors this logger depends on. If any of them fail, no attempt will be made to log.

groups
  Type:

    comma-separated list of string

  Required:

    false

  Default:

    `default`

  list of monitor groups this logger should record. Use the special value `_all` to match all groups. See the group setting for monitors.

tz
  Type:

    string

  Required:

    false

  Default:

    `UTC`

  the timezone to convert date/times to

dateformat
  Type:

    string

  Required:

    false

  Default:

    `timestamp`

  the date format to write for log lines. (Note that the timezone is controlled by the tz configuration value.) Accepted values are:

  - `timestamp` (UNIX timestamp)

  - `iso8601` (`YYYY-MM-DDTHH:MM:SS`)

heartbeat
  Type:

    bool

  Required:

    false

  Default:

    false

  if set, the logger only logs for monitors which executed on an iteration. Intended to be combined with the gap property of a Monitor.

enabled
  Type:

    boolean

  Required:

    false

  Default:

    true

  Set to false to turn off the logger

## Loggers

Note

The `type` of the logger is the first word in its heading.

- db - sqlite log of results
- dbstatus - sqlite status snapshot
- html - HTML status page
- json - write JSON status file
- logfile - write a logfile
- logfileng - write a logfile with rotation
- mqtt - send to MQTT server
- network - remote SimpleMonitor logging
- seq - seq log server