summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2014-04-15 18:33:35 +0100
committerLars Wirzenius <liw@liw.fi>2014-04-15 18:33:35 +0100
commit55c0d699eb7d42d5acd6aa663f600afe3f7d2be5 (patch)
tree51d974c532d521313c3773564f9475bf89d7cfc9
parent1ed344ce0df240f45c4725152b40b707b2a4d1f2 (diff)
downloadcliapp-55c0d699eb7d42d5acd6aa663f600afe3f7d2be5.tar.gz
Split of logging setup for file into separate method
-rw-r--r--NEWS3
-rw-r--r--cliapp/app.py26
2 files changed, 19 insertions, 10 deletions
diff --git a/NEWS b/NEWS
index 6ef89a1..33a70b2 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,9 @@ 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`.
+
Bug fixes:
* When getting help for a subcommand, cliapp would crash saying
diff --git a/cliapp/app.py b/cliapp/app.py
index c1a28d4..9486a73 100644
--- a/cliapp/app.py
+++ b/cliapp/app.py
@@ -400,16 +400,7 @@ class Application(object):
if self.settings['log'] == 'syslog':
handler = self.setup_logging_handler_for_syslog()
elif self.settings['log'] and self.settings['log'] != 'none':
- handler = LogHandler(
- self.settings['log'],
- perms=int(self.settings['log-mode'], 8),
- maxBytes=self.settings['log-max'],
- backupCount=self.settings['log-keep'],
- delay=False)
- fmt = '%(asctime)s %(levelname)s %(message)s'
- datefmt = '%Y-%m-%d %H:%M:%S'
- formatter = logging.Formatter(fmt, datefmt)
- handler.setFormatter(formatter)
+ handler = self.setup_logging_handler_for_file()
else:
handler = self.setup_logging_handler_to_none()
# reduce amount of pointless I/O
@@ -430,6 +421,21 @@ class Application(object):
return handler
+ def setup_logging_handler_for_file(self): # pragma: no cover
+ '''Setup a logging handler for logging to a named file.'''
+
+ handler = LogHandler(
+ self.settings['log'],
+ perms=int(self.settings['log-mode'], 8),
+ maxBytes=self.settings['log-max'],
+ backupCount=self.settings['log-keep'],
+ delay=False)
+ fmt = '%(asctime)s %(levelname)s %(message)s'
+ datefmt = '%Y-%m-%d %H:%M:%S'
+ formatter = logging.Formatter(fmt, datefmt)
+ handler.setFormatter(formatter)
+ return handler
+
def setup_logging_handler_to_none(self): # pragma: no cover
'''Setup a logging.Handler that does not log anything anywhere.'''