# 3.13. Logging

## 3.13.1. Logging options

[log]

  CouchDB logging configuration.

  writer

    Current writers include:

    - `stderr`: Logs are sent to stderr.

    - `file`: Logs are sent to the file set in `log file`.

    - `syslog`: Logs are sent to the syslog daemon.

    - `journald`: Logs are sent to stderr without timestamp and log levels compatible with sd-daemon.

    You can also specify a full module name here if implement your own writer:

        [log]
        writer = stderr

  file

    Specifies the location of file for logging output. Only used by the `file` `writer`:

        [log]
        file = /var/log/couchdb/couch.log

    This path should be readable and writable for user that runs CouchDB service (couchdb by default).

  write_buffer

    Specifies the size of the file log write buffer in bytes, to enable delayed log writes. Only used by the `file` `writer`:

        [log]
        write_buffer = 0

  write_delay

    Specifies the wait in milliseconds before committing logs to disk, to enable delayed log writes. Only used by the `file` `writer`:

        [log]
        write_delay = 0

  level

    Changed in version 1.3: Added `warning` level.

    Logging level defines how verbose and detailed logging will be:

        [log]
        level = info

    Available levels:

    - `debug`: Detailed debug logging.

    - `info`: Informative logging. Includes HTTP requests headlines, startup of an external processes etc.

    - `notice`

    - `warning` or `warn`: Warning messages are alerts about edge situations that may lead to errors. For instance, compaction daemon alerts about low or insufficient disk space at this level.

    - `error` or `err`: Error level includes only things that go wrong, like crash reports and HTTP error responses (5xx codes).

    - `critical` or `crit`

    - `alert`

    - `emergency` or `emerg`

    - `none`: Disables logging any messages.

  include_sasl

    Includes SASL information in logs:

        [log]
        include_sasl = true

  syslog_host

    Note

    Setting syslog_host is mandatory for `syslog` to work!

    Specifies the syslog host to send logs to. Only used by the `syslog` `writer`:

        [log]
        syslog_host = localhost

  syslog_port

    Specifies the syslog port to connect to when sending logs. Only used by the `syslog` `writer`:

        [log]
        syslog_port = 514

  syslog_appid

    Specifies application name to the `syslog` `writer`:

        [log]
        syslog_appid = couchdb

  syslog_facility

    Specifies the syslog facility to use with the `syslog` `writer`:

        [log]
        syslog_facility = local2

  Note

  CouchDB’s `syslog` only knows how to use UDP logging. Please ensure that your `syslog` server has UDP logging enabled.

  For `rsyslog` you can enable the UDP module imudp in `/etc/rsyslog.conf`:

      # provides UDP syslog reception
      module(load="imudp")
      input(type="imudp" port="514")