summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2014-04-15 18:36:50 +0100
committerLars Wirzenius <liw@liw.fi>2014-04-15 18:36:50 +0100
commitb77375eb9f89fd114674f68bb2f4f6e1bce60bfc (patch)
treedfe71e59b9f3e52ec0ae0db952b33f03cc24cb8b
parent55c0d699eb7d42d5acd6aa663f600afe3f7d2be5 (diff)
downloadcliapp-b77375eb9f89fd114674f68bb2f4f6e1bce60bfc.tar.gz
Split logging setup into further overrideable methods
-rw-r--r--NEWS6
-rw-r--r--cliapp/app.py19
2 files changed, 18 insertions, 7 deletions
diff --git a/NEWS b/NEWS
index 33a70b2..abd35e3 100644
--- a/NEWS
+++ b/NEWS
@@ -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.'''