92 lines
3.0 KiB
Plaintext
92 lines
3.0 KiB
Plaintext
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:
|
|
# This is just here so we can leave `loggers` in the config regardless of whether
|
|
# we configure other loggers below (avoid empty yaml dict error).
|
|
_placeholder:
|
|
level: "INFO"
|
|
|
|
{% if not SYNAPSE_LOG_SENSITIVE %}
|
|
{#
|
|
If SYNAPSE_LOG_SENSITIVE is unset, then override synapse.storage.SQL to INFO
|
|
so that DEBUG entries (containing sensitive information) are not emitted.
|
|
#}
|
|
synapse.storage.SQL:
|
|
# beware: increasing this to DEBUG will make synapse log sensitive
|
|
# information such as access tokens.
|
|
level: INFO
|
|
{% endif %}
|
|
|
|
{% if SYNAPSE_LOG_TESTING %}
|
|
{#
|
|
If Synapse is under test, log a few more useful things for a developer
|
|
attempting to debug something particularly tricky.
|
|
|
|
With `synapse.visibility.filtered_event_debug`, it logs when events are (maybe
|
|
unexpectedly) filtered out of responses in tests. It's just nice to be able to
|
|
look at the CI log and figure out why an event isn't being returned.
|
|
#}
|
|
synapse.visibility.filtered_event_debug:
|
|
level: DEBUG
|
|
{% endif %}
|
|
|
|
root:
|
|
level: {{ SYNAPSE_LOG_LEVEL or "INFO" }}
|
|
|
|
{% if LOG_FILE_PATH %}
|
|
handlers: [console, buffer]
|
|
{% else %}
|
|
handlers: [console]
|
|
{% endif %}
|
|
|
|
disable_existing_loggers: false
|