From 84ee96c394652ce6f72ce4f2c541bc7e5a70154d Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Fri, 28 Feb 2014 14:37:18 +0100 Subject: [PATCH] Better logging --- config.example | 1 + vdirsyncer/cli.py | 22 +++++++++++++--------- vdirsyncer/log.py | 10 +++++++++- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/config.example b/config.example index 214ca88..433e9f9 100644 --- a/config.example +++ b/config.example @@ -1,5 +1,6 @@ [general] status_path=~/.vdirsyncer/status/ +#verbose = False [pair bob] # This syncronizes only a single collection/calendar/addressbook diff --git a/vdirsyncer/cli.py b/vdirsyncer/cli.py index 244bd56..242e6e2 100644 --- a/vdirsyncer/cli.py +++ b/vdirsyncer/cli.py @@ -109,18 +109,17 @@ def _main(env, file_cfg): sys.exit(1) @app.option('--verbose|-v') - def verbose_option(context): - '''Print generally more information.''' - log.get('cli').setLevel(log.logging.DEBUG) - sync_verbose_option(context) + def verbose_option(context=None): + '''Print more information.''' + log.set_level(log.logging.DEBUG) + + @app.option('--quiet|-q') + def quiet_option(context=None): + '''Inverse of --verbose.''' + log.set_level(log.logging.WARNING) sync_command = argvard.Command() - @sync_command.option('--verbose|-v') - def sync_verbose_option(context): - '''Print more information about the syncing process.''' - log.get('sync').setLevel(log.logging.DEBUG) - @sync_command.main('[pairs...]') def sync_main(context, pairs=None): '''Syncronize the given pairs. If no pairs are given, all will be @@ -150,4 +149,9 @@ def _main(env, file_cfg): action() app.register_command('sync', sync_command) + + if general.get('verbose', False): + verbose_option() + else: + quiet_option() app() diff --git a/vdirsyncer/log.py b/vdirsyncer/log.py index c99f753..c2dd426 100644 --- a/vdirsyncer/log.py +++ b/vdirsyncer/log.py @@ -11,11 +11,12 @@ import sys stdout_handler = logging.StreamHandler(sys.stdout) +default_level = logging.WARNING def create_logger(name): x = logging.getLogger(name) - x.setLevel(logging.WARNING) + x.setLevel(default_level) x.addHandler(stdout_handler) return x @@ -28,3 +29,10 @@ def get(name): if name not in loggers: loggers[name] = create_logger(name) return loggers[name] + + +def set_level(level): + global default_level + default_level = level + for logger in loggers.values(): + logger.setLevel(level)