add quiet mode
This commit is contained in:
parent
af4a09d959
commit
14bc9b8fef
|
@ -8,9 +8,7 @@ from . import configuration
|
|||
from . import package_logger
|
||||
from . import error
|
||||
from . import backend_types
|
||||
from . import email_handler
|
||||
|
||||
LOGGER_NAME = "backupmgr.application.main"
|
||||
from . import logging_handlers
|
||||
|
||||
class Application(object):
|
||||
@property
|
||||
|
@ -20,9 +18,13 @@ class Application(object):
|
|||
def configure_logging(self):
|
||||
logging.basicConfig()
|
||||
l = package_logger()
|
||||
l.propagate=False
|
||||
l.setLevel(logging.DEBUG)
|
||||
self.handler = email_handler.EmailHandler("root", "root")
|
||||
l.addHandler(self.handler)
|
||||
self.email_handler = logging_handlers.EmailHandler("root", "root")
|
||||
self.stderr_handler = logging_handlers.SwitchableStreamHandler()
|
||||
self.stderr_handler.formatter = logging.Formatter('%(levelname)s: %(name)s: %(message)s')
|
||||
l.addHandler(self.email_handler)
|
||||
l.addHandler(self.stderr_handler)
|
||||
|
||||
def bootstrap(self):
|
||||
self.configure_logging()
|
||||
|
@ -30,7 +32,9 @@ class Application(object):
|
|||
|
||||
def load_config(self):
|
||||
self.config = configuration.read_config()
|
||||
self.handler.toaddr = self.config.notification_address
|
||||
self.email_handler.toaddr = self.config.notification_address
|
||||
if self.config.quiet:
|
||||
self.stderr_handler.disable()
|
||||
|
||||
def prepare_backups(self):
|
||||
backups = self.config.backups_due()
|
||||
|
@ -41,7 +45,7 @@ class Application(object):
|
|||
self.config.log_run(backups)
|
||||
|
||||
def finalize(self):
|
||||
self.handler.finalize()
|
||||
self.email_handler.finalize()
|
||||
|
||||
def run(self):
|
||||
try:
|
||||
|
|
|
@ -10,6 +10,7 @@ import datetime
|
|||
import collections
|
||||
import itertools
|
||||
import socket
|
||||
import argparse
|
||||
|
||||
from . import package_logger
|
||||
from . import error
|
||||
|
@ -147,6 +148,11 @@ class Config(object):
|
|||
return {}
|
||||
|
||||
def __init__(self):
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-q", "--quiet", action="store_true")
|
||||
ns = parser.parse_args()
|
||||
self.quiet = ns.quiet
|
||||
|
||||
self.configfile = CONFIG_LOCATION
|
||||
try:
|
||||
with open(CONFIG_LOCATION) as f:
|
||||
|
@ -221,6 +227,7 @@ class Config(object):
|
|||
if count > 1:
|
||||
raise InvalidConfigError("Duplicate backup \"{}\"".format(name))
|
||||
|
||||
|
||||
def log_run(self, backups):
|
||||
for backup in backups:
|
||||
self.state[backup.name] = time.time()
|
||||
|
|
|
@ -32,3 +32,19 @@ class EmailHandler(logging.Handler):
|
|||
|
||||
proc.stdin.write(m.as_string())
|
||||
proc.stdin.close()
|
||||
|
||||
|
||||
class SwitchableStreamHandler(logging.StreamHandler):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(SwitchableStreamHandler, self).__init__(*args, **kwargs)
|
||||
self.__enabled = True
|
||||
|
||||
def disable(self):
|
||||
self.__enabled = False
|
||||
|
||||
def enable(self):
|
||||
self.__enabled = True
|
||||
|
||||
def emit(self, record):
|
||||
if self.__enabled or record.levelno >= logging.WARNING:
|
||||
super(SwitchableStreamHandler, self).emit(record)
|
Loading…
Reference in New Issue