# [2]: https://matrix-org.github.io/synapse/latest/structured_logging.html

version: 1
formatters:
    precise:
        format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s - %(message)s'

handlers:
    file:
        class: logging.handlers.TimedRotatingFileHandler
        formatter: precise
        filename: /var/lib/synapse/{{ password.server_name }}.log
        when: midnight
        backupCount: 3  # Does not include the current log file.
        encoding: utf8

    buffer:
        class: synapse.logging.handlers.PeriodicallyFlushingMemoryHandler
        target: file

        capacity: 10
        flushLevel: 30  # Flush immediately for WARNING logs and higher
        period: 5

    console:
        class: logging.StreamHandler
        formatter: precise

loggers:
    synapse.storage.SQL:
        level: INFO

root:
    level: INFO
    handlers: [buffer]

disable_existing_loggers: false