version: 1 formatters: precise: {% if include_worker_name_in_log_line %} format: '{{ worker_name }} | %(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s - %(message)s' {% else %} format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s - %(message)s' {% endif %} handlers: {% if LOG_FILE_PATH %} file: class: logging.handlers.TimedRotatingFileHandler formatter: precise filename: {{ LOG_FILE_PATH }} when: "midnight" backupCount: 6 # Does not include the current log file. encoding: utf8 # Default to buffering writes to log file for efficiency. # WARNING/ERROR logs will still be flushed immediately, but there will be a # delay (of up to `period` seconds, or until the buffer is full with # `capacity` messages) before INFO/DEBUG logs get written. buffer: class: synapse.logging.handlers.PeriodicallyFlushingMemoryHandler target: file # The capacity is the maximum number of log lines that are buffered # before being written to disk. Increasing this will lead to better # performance, at the expensive of it taking longer for log lines to # be written to disk. # This parameter is required. capacity: 10 # Logs with a level at or above the flush level will cause the buffer to # be flushed immediately. # Default value: 40 (ERROR) # Other values: 50 (CRITICAL), 30 (WARNING), 20 (INFO), 10 (DEBUG) flushLevel: 30 # Flush immediately for WARNING logs and higher # The period of time, in seconds, between forced flushes. # Messages will not be delayed for longer than this time. # Default value: 5 seconds period: 5 {% endif %} console: class: logging.StreamHandler formatter: precise loggers: synapse.storage.SQL: # beware: increasing this to DEBUG will make synapse log sensitive # information such as access tokens. level: INFO root: level: {{ SYNAPSE_LOG_LEVEL or "INFO" }} {% if LOG_FILE_PATH %} handlers: [console, buffer] {% else %} handlers: [console] {% endif %} disable_existing_loggers: false