mirror of
https://github.com/element-hq/synapse
synced 2024-08-20 09:40:22 +00:00
Hacky attempt at catching SIGHUP and rotating the logfile around
This commit is contained in:
parent
728d07c8c1
commit
9cd5b9a802
1 changed files with 14 additions and 0 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue