From: Sage Weil Date: Thu, 28 Mar 2013 01:46:22 +0000 (-0700) Subject: Send log msgs to file '{cluster}.log' as well as console. X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fa5678d64a0c8946c1cf65921446e30440dd5c2b;p=ceph-deploy.git Send log msgs to file '{cluster}.log' as well as console. Default log level is INFO to console, DEBUG to logfile --verbose changes console log level to DEBUG as well logfile gets timestamp modulename level msg, console gets just msg Fixes: #4468 Signed-off-by: Dan Mick --- diff --git a/ceph_deploy/cli.py b/ceph_deploy/cli.py index 7ceee8e..7f286ad 100644 --- a/ceph_deploy/cli.py +++ b/ceph_deploy/cli.py @@ -81,13 +81,27 @@ def parse_args(args=None, namespace=None): def main(args=None, namespace=None): args = parse_args(args=args, namespace=namespace) - loglevel = logging.INFO + console_loglevel = logging.INFO if args.verbose: - loglevel = logging.DEBUG + console_loglevel = logging.DEBUG + sh = logging.StreamHandler() + sh.setLevel(console_loglevel) - logging.basicConfig( - level=loglevel, - ) + fh = logging.FileHandler('{cluster}.log'.format(cluster=args.cluster)) + fh.setLevel(logging.DEBUG) + formatter = logging.Formatter( + '%(asctime)s %(name)s %(levelname)s %(message)s') + fh.setFormatter(formatter) + + # because we're in a module already, __name__ is not the ancestor of + # the rest of the package; use the root as the logger for everyone + root_logger = logging.getLogger() + + # allow all levels at root_logger, handlers control individual levels + root_logger.setLevel(logging.DEBUG) + + root_logger.addHandler(sh) + root_logger.addHandler(fh) sudo_pushy.patch()