diff options
author | Paul "LeoNerd" Evans <paul@matrix.org> | 2015-09-14 19:03:53 +0100 |
---|---|---|
committer | Paul "LeoNerd" Evans <paul@matrix.org> | 2015-09-14 19:03:53 +0100 |
commit | 9cd5b9a802f4c38f716a507a40188557103993f3 (patch) | |
tree | 4649bb6d7dffb1d6ae818f81e330162d7e864c13 /synapse/config | |
parent | Merge pull request #256 from matrix-org/auth (diff) | |
download | synapse-9cd5b9a802f4c38f716a507a40188557103993f3.tar.xz |
Hacky attempt at catching SIGHUP and rotating the logfile around
Diffstat (limited to 'synapse/config')
-rw-r--r-- | synapse/config/logger.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/synapse/config/logger.py b/synapse/config/logger.py index fa542623b7..daca698d0c 100644 --- a/synapse/config/logger.py +++ b/synapse/config/logger.py @@ -21,6 +21,7 @@ import logging.config import yaml from string import Template import os +import signal DEFAULT_LOG_CONFIG = Template(""" @@ -142,6 +143,19 @@ class LoggingConfig(Config): handler = logging.handlers.RotatingFileHandler( self.log_file, maxBytes=(1000 * 1000 * 100), backupCount=3 ) + + def sighup(signum, stack): + logger.info("Closing log file due to SIGHUP") + handler.doRollover() + logger.info("Opened new log file due to SIGHUP") + + # TODO(paul): obviously this is a terrible mechanism for + # stealing SIGHUP, because it means no other part of synapse + # can use it instead. If we want to catch SIGHUP anywhere + # else as well, I'd suggest we find a nicer way to broadcast + # it around. + if getattr(signal, "SIGHUP"): + signal.signal(signal.SIGHUP, sighup) else: handler = logging.StreamHandler() handler.setFormatter(formatter) |