Reload logger config on SIGHUP
Particularly useful for logrotate.
This commit is contained in:
parent
a5c5f2494f
commit
ab04e38dc8
@ -28,6 +28,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import logging
|
import logging
|
||||||
import logging.config
|
import logging.config
|
||||||
|
import signal
|
||||||
|
|
||||||
from . import config
|
from . import config
|
||||||
|
|
||||||
@ -35,6 +36,14 @@ from . import config
|
|||||||
LOGGER = logging.getLogger()
|
LOGGER = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
|
def configure_from_file(filename, debug):
|
||||||
|
logging.config.fileConfig(filename)
|
||||||
|
if debug:
|
||||||
|
LOGGER.setLevel(logging.DEBUG)
|
||||||
|
for handler in LOGGER.handlers:
|
||||||
|
handler.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
|
||||||
def start():
|
def start():
|
||||||
"""Start the logging according to the configuration."""
|
"""Start the logging according to the configuration."""
|
||||||
filename = os.path.expanduser(config.get("logging", "config"))
|
filename = os.path.expanduser(config.get("logging", "config"))
|
||||||
@ -42,11 +51,11 @@ def start():
|
|||||||
|
|
||||||
if os.path.exists(filename):
|
if os.path.exists(filename):
|
||||||
# Configuration taken from file
|
# Configuration taken from file
|
||||||
logging.config.fileConfig(filename)
|
configure_from_file(filename, debug)
|
||||||
if debug:
|
# Reload config on SIGHUP
|
||||||
LOGGER.setLevel(logging.DEBUG)
|
def handler(signum, frame):
|
||||||
for handler in LOGGER.handlers:
|
configure_from_file(filename, debug)
|
||||||
handler.setLevel(logging.DEBUG)
|
signal.signal(signal.SIGHUP, handler)
|
||||||
else:
|
else:
|
||||||
# Default configuration, standard output
|
# Default configuration, standard output
|
||||||
handler = logging.StreamHandler(sys.stdout)
|
handler = logging.StreamHandler(sys.stdout)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user