summaryrefslogtreecommitdiff
path: root/morphlib/writeexts.py
diff options
context:
space:
mode:
authorSam Thursfield <sam@afuera.me.uk>2014-09-01 10:27:14 +0000
committerSam Thursfield <sam@afuera.me.uk>2014-09-01 10:27:14 +0000
commit6517fd82be115388dda0532aedd6a835345635e6 (patch)
treec57313e6eca50816db6c1649dd4c4ff22d0d5465 /morphlib/writeexts.py
parent9c0011417081326ebb72d9ed02fcbbc456946dc4 (diff)
parent354253df295bb2815a9d5e0744b3aa98eea6aad9 (diff)
downloadmorph-6517fd82be115388dda0532aedd6a835345635e6.tar.gz
Merge branch 'deploy-improvements'
Reviewed-By: Richard Maw <richard.maw@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
Diffstat (limited to 'morphlib/writeexts.py')
-rw-r--r--morphlib/writeexts.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/morphlib/writeexts.py b/morphlib/writeexts.py
index c3605b1c..5102bfdc 100644
--- a/morphlib/writeexts.py
+++ b/morphlib/writeexts.py
@@ -89,7 +89,30 @@ class WriteExtension(cliapp.Application):
write extensions.
'''
-
+
+ def setup_logging(self):
+ '''Direct all logging output to MORPH_LOG_FD, if set.
+
+ This file descriptor is read by Morph and written into its own log
+ file.
+
+ This overrides cliapp's usual configurable logging setup.
+
+ '''
+ log_write_fd = int(os.environ.get('MORPH_LOG_FD', 0))
+
+ if log_write_fd == 0:
+ return
+
+ formatter = logging.Formatter('%(message)s')
+
+ handler = logging.StreamHandler(os.fdopen(log_write_fd, 'w'))
+ handler.setFormatter(formatter)
+
+ logger = logging.getLogger()
+ logger.addHandler(handler)
+ logger.setLevel(logging.DEBUG)
+
def process_args(self, args):
raise NotImplementedError()