|
@@ -21,7 +21,12 @@ from string import Template
|
|
|
|
|
|
import yaml
|
|
|
|
|
|
-from twisted.logger import STDLibLogObserver, globalLogBeginner
|
|
|
+from twisted.logger import (
|
|
|
+ ILogObserver,
|
|
|
+ LogBeginner,
|
|
|
+ STDLibLogObserver,
|
|
|
+ globalLogBeginner,
|
|
|
+)
|
|
|
|
|
|
import synapse
|
|
|
from synapse.app import _base as appbase
|
|
@@ -124,7 +129,7 @@ class LoggingConfig(Config):
|
|
|
log_config_file.write(DEFAULT_LOG_CONFIG.substitute(log_file=log_file))
|
|
|
|
|
|
|
|
|
-def _setup_stdlib_logging(config, log_config):
|
|
|
+def _setup_stdlib_logging(config, log_config, logBeginner: LogBeginner):
|
|
|
"""
|
|
|
Set up Python stdlib logging.
|
|
|
"""
|
|
@@ -165,12 +170,12 @@ def _setup_stdlib_logging(config, log_config):
|
|
|
|
|
|
return observer(event)
|
|
|
|
|
|
- globalLogBeginner.beginLoggingTo(
|
|
|
- [_log], redirectStandardIO=not config.no_redirect_stdio
|
|
|
- )
|
|
|
+ logBeginner.beginLoggingTo([_log], redirectStandardIO=not config.no_redirect_stdio)
|
|
|
if not config.no_redirect_stdio:
|
|
|
print("Redirected stdout/stderr to logs")
|
|
|
|
|
|
+ return observer
|
|
|
+
|
|
|
|
|
|
def _reload_stdlib_logging(*args, log_config=None):
|
|
|
logger = logging.getLogger("")
|
|
@@ -181,7 +186,9 @@ def _reload_stdlib_logging(*args, log_config=None):
|
|
|
logging.config.dictConfig(log_config)
|
|
|
|
|
|
|
|
|
-def setup_logging(hs, config, use_worker_options=False):
|
|
|
+def setup_logging(
|
|
|
+ hs, config, use_worker_options=False, logBeginner: LogBeginner = globalLogBeginner
|
|
|
+) -> ILogObserver:
|
|
|
"""
|
|
|
Set up the logging subsystem.
|
|
|
|
|
@@ -191,6 +198,12 @@ def setup_logging(hs, config, use_worker_options=False):
|
|
|
|
|
|
use_worker_options (bool): True to use the 'worker_log_config' option
|
|
|
instead of 'log_config'.
|
|
|
+
|
|
|
+ logBeginner: The Twisted logBeginner to use.
|
|
|
+
|
|
|
+ Returns:
|
|
|
+ The "root" Twisted Logger observer, suitable for sending logs to from a
|
|
|
+ Logger instance.
|
|
|
"""
|
|
|
log_config = config.worker_log_config if use_worker_options else config.log_config
|
|
|
|
|
@@ -210,10 +223,12 @@ def setup_logging(hs, config, use_worker_options=False):
|
|
|
log_config_body = read_config()
|
|
|
|
|
|
if log_config_body and log_config_body.get("structured") is True:
|
|
|
- setup_structured_logging(hs, config, log_config_body)
|
|
|
+ logger = setup_structured_logging(
|
|
|
+ hs, config, log_config_body, logBeginner=logBeginner
|
|
|
+ )
|
|
|
appbase.register_sighup(read_config, callback=reload_structured_logging)
|
|
|
else:
|
|
|
- _setup_stdlib_logging(config, log_config_body)
|
|
|
+ logger = _setup_stdlib_logging(config, log_config_body, logBeginner=logBeginner)
|
|
|
appbase.register_sighup(read_config, callback=_reload_stdlib_logging)
|
|
|
|
|
|
# make sure that the first thing we log is a thing we can grep backwards
|
|
@@ -221,3 +236,5 @@ def setup_logging(hs, config, use_worker_options=False):
|
|
|
logging.warn("***** STARTING SERVER *****")
|
|
|
logging.warn("Server %s version %s", sys.argv[0], get_version_string(synapse))
|
|
|
logging.info("Server hostname: %s", config.server_name)
|
|
|
+
|
|
|
+ return logger
|