diff options
author | Lars Wirzenius <liw@liw.fi> | 2014-04-15 18:36:50 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2014-04-15 18:36:50 +0100 |
commit | b77375eb9f89fd114674f68bb2f4f6e1bce60bfc (patch) | |
tree | dfe71e59b9f3e52ec0ae0db952b33f03cc24cb8b | |
parent | 55c0d699eb7d42d5acd6aa663f600afe3f7d2be5 (diff) | |
download | cliapp-b77375eb9f89fd114674f68bb2f4f6e1bce60bfc.tar.gz |
Split logging setup into further overrideable methods
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | cliapp/app.py | 19 |
2 files changed, 18 insertions, 7 deletions
@@ -4,8 +4,10 @@ NEWS for cliapp Version UNRELEASED ------------------ -* The way logging is set up has been split into smaller methods, - to allow overriding better. See `setup_logging_handler_for_file`. +* The way logging is set up has been split into smaller methods, to + allow overriding better. See `setup_logging_handler_for_file`, + `setup_logging_formatter_for_file`, and + `setup_logging_formatter_for_syslog`. Bug fixes: diff --git a/cliapp/app.py b/cliapp/app.py index 9486a73..0191814 100644 --- a/cliapp/app.py +++ b/cliapp/app.py @@ -414,13 +414,17 @@ class Application(object): '''Setup a logging.Handler for logging to syslog.''' handler = logging.handlers.SysLogHandler(address='/dev/log') - progname = '%%'.join(self.settings.progname.split('%')) - fmt = progname + ": %(levelname)s %(message)s" - formatter = logging.Formatter(fmt) + formatter = self.setup_logging_formatter_for_syslog() handler.setFormatter(formatter) return handler + def setup_logging_formatter_for_syslog(self): # pragma: no cover + '''Setup a logging.Formatter for syslog.''' + progname = '%%'.join(self.settings.progname.split('%')) + fmt = progname + ": %(levelname)s %(message)s" + return logging.Formatter(fmt) + def setup_logging_handler_for_file(self): # pragma: no cover '''Setup a logging handler for logging to a named file.''' @@ -430,11 +434,16 @@ class Application(object): maxBytes=self.settings['log-max'], backupCount=self.settings['log-keep'], delay=False) + formatter = self.setup_logging_formatter_for_file() + handler.setFormatter(formatter) + return handler + + def setup_logging_formatter_for_file(self): # pragma: no cover + '''Setup a logging.Formatter for logging to a file.''' fmt = '%(asctime)s %(levelname)s %(message)s' datefmt = '%Y-%m-%d %H:%M:%S' formatter = logging.Formatter(fmt, datefmt) - handler.setFormatter(formatter) - return handler + return formatter def setup_logging_handler_to_none(self): # pragma: no cover '''Setup a logging.Handler that does not log anything anywhere.''' |