If Synapse is under test (`SYNAPSE_LOG_TESTING` is set), we don't care about seeing the "Applying schema" log lines at the INFO level every time we run the tests (it's 100 lines of bulk for each homeserver). ``` synapse_main | 2025-08-29 22:34:03,453 - synapse.storage.prepare_database - 433 - INFO - main - Applying schema deltas for v73 synapse_main | 2025-08-29 22:34:03,454 - synapse.storage.prepare_database - 541 - INFO - main - Applying schema 73/01event_failed_pull_attempts.sql synapse_main | 2025-08-29 22:34:03,463 - synapse.storage.prepare_database - 541 - INFO - main - Applying schema 73/02add_pusher_enabled.sql synapse_main | 2025-08-29 22:34:03,473 - synapse.storage.prepare_database - 541 - INFO - main - Applying schema 73/02room_id_indexes_for_purging.sql synapse_main | 2025-08-29 22:34:03,482 - synapse.storage.prepare_database - 541 - INFO - main - Applying schema 73/03pusher_device_id.sql synapse_main | 2025-08-29 22:34:03,492 - synapse.storage.prepare_database - 541 - INFO - main - Applying schema 73/03users_approved_column.sql synapse_main | 2025-08-29 22:34:03,502 - synapse.storage.prepare_database - 541 - INFO - main - Applying schema 73/04partial_join_details.sql synapse_main | 2025-08-29 22:34:03,513 - synapse.storage.prepare_database - 541 - INFO - main - Applying schema 73/04pending_device_list_updates.sql ... ``` The Synapse logs are visible when a Complement test fails or you use `COMPLEMENT_ALWAYS_PRINT_SERVER_LOGS=1`. This is spawning from a Complement test with three homeservers and wanting less log noise to scroll through.
99 lines
3.2 KiB
Plaintext
99 lines
3.2 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
|
|
|
|
{#
|
|
If Synapse is under test, we don't care about seeing the "Applying schema" log
|
|
lines at the INFO level every time we run the tests (it's 100 lines of bulk)
|
|
#}
|
|
synapse.storage.prepare_database:
|
|
level: WARN
|
|
{% endif %}
|
|
|
|
root:
|
|
level: {{ SYNAPSE_LOG_LEVEL or "INFO" }}
|
|
|
|
{% if LOG_FILE_PATH %}
|
|
handlers: [console, buffer]
|
|
{% else %}
|
|
handlers: [console]
|
|
{% endif %}
|
|
|
|
disable_existing_loggers: false
|