1 files changed, 31 insertions, 1 deletions
diff --git a/docker/conf/log.config b/docker/conf/log.config
index 491bbcc87a..34572bc0f3 100644
--- a/docker/conf/log.config
+++ b/docker/conf/log.config
@@ -2,9 +2,34 @@ version: 1
formatters:
precise:
- format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s - %(message)s'
+{% if worker_name %}
+ format: '%(asctime)s - worker:{{ worker_name }} - %(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:
+ file:
+ class: logging.handlers.TimedRotatingFileHandler
+ formatter: precise
+ filename: {{ LOG_FILE_PATH or "homeserver.log" }}
+ when: "midnight"
+ backupCount: 6 # Does not include the current log file.
+ encoding: utf8
+
+ # Default to buffering writes to log file for efficiency. This means that
+ # there will be a delay for INFO/DEBUG logs to get written, but WARNING/ERROR
+ # logs will still be flushed immediately.
+ buffer:
+ class: logging.handlers.MemoryHandler
+ target: file
+ # The capacity is the 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.
+ capacity: 10
+ flushLevel: 30 # Flush for WARNING logs as well
+
console:
class: logging.StreamHandler
formatter: precise
@@ -17,6 +42,11 @@ loggers:
root:
level: {{ SYNAPSE_LOG_LEVEL or "INFO" }}
+
+{% if LOG_FILE_PATH %}
+ handlers: [console, buffer]
+{% else %}
handlers: [console]
+{% endif %}
disable_existing_loggers: false
|