From dae8682e51e85051d7d81fda0e0f834b187846b4 Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Fri, 20 Apr 2012 18:32:10 -0400 Subject: [PATCH] CC-3691: Pypo needs to write stderr + stdout to the log file -fixed --- install_minimal/include/airtime-copy-files.sh | 1 + python_apps/media-monitor/MediaMonitor.py | 10 ++++++++-- python_apps/pypo/pypo-notify.py | 8 +++++++- python_apps/pypo/pypocli.py | 7 ++++++- python_apps/pypo/pypofetch.py | 7 ++++++- python_apps/pypo/pypofile.py | 8 +++++++- python_apps/pypo/pypomessagehandler.py | 8 +++++++- python_apps/pypo/pypopush.py | 7 ++++++- python_apps/std_err_override/LogWriter.py | 11 +++++++++++ python_apps/std_err_override/__init__.py | 0 10 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 python_apps/std_err_override/LogWriter.py create mode 100644 python_apps/std_err_override/__init__.py diff --git a/install_minimal/include/airtime-copy-files.sh b/install_minimal/include/airtime-copy-files.sh index 9689bc2ea..62ac6524a 100755 --- a/install_minimal/include/airtime-copy-files.sh +++ b/install_minimal/include/airtime-copy-files.sh @@ -69,6 +69,7 @@ fi mkdir -p /usr/lib/airtime cp -R $AIRTIMEROOT/utils /usr/lib/airtime +cp -R $AIRTIMEROOT/python_apps/std_err_override /usr/lib/airtime echo "* Creating symbolic links in /usr/bin" #create symbolic links diff --git a/python_apps/media-monitor/MediaMonitor.py b/python_apps/media-monitor/MediaMonitor.py index 9bc2c3052..d3f8bb0cd 100644 --- a/python_apps/media-monitor/MediaMonitor.py +++ b/python_apps/media-monitor/MediaMonitor.py @@ -6,6 +6,7 @@ import os import signal from api_clients import api_client as apc +from std_err_override import LogWriter from multiprocessing import Process, Queue as mpQueue @@ -23,12 +24,17 @@ from airtimefilemonitor.airtimemediamonitorbootstrap import AirtimeMediaMonitorB # configure logging try: logging.config.fileConfig("logging.cfg") + + #need to wait for Python 2.7 for this.. + #logging.captureWarnings(True) + + logger = logging.getLogger() + LogWriter.override_std_err(logger) + except Exception, e: print 'Error configuring logging: ', e sys.exit(1) -logger = logging.getLogger() - logger.info("\n\n*** Media Monitor bootup ***\n\n") try: diff --git a/python_apps/pypo/pypo-notify.py b/python_apps/pypo/pypo-notify.py index ebd8e0f5b..d5b4edff5 100644 --- a/python_apps/pypo/pypo-notify.py +++ b/python_apps/pypo/pypo-notify.py @@ -36,6 +36,7 @@ from configobj import ConfigObj # custom imports #from util import * from api_clients import * +from std_err_override import LogWriter # Set up command-line options parser = OptionParser() @@ -59,13 +60,18 @@ parser.add_option("-y", "--source-status", help="source connection stauts", meta # configure logging logging.config.fileConfig("logging.cfg") +logger = logging.getLogger() +LogWriter.override_std_err(logger) + +#need to wait for Python 2.7 for this.. +#logging.captureWarnings(True) # loading config file try: config = ConfigObj('/etc/airtime/pypo.cfg') except Exception, e: - print 'error: ', e + logger.error('Error loading config file: %s', e) sys.exit() diff --git a/python_apps/pypo/pypocli.py b/python_apps/pypo/pypocli.py index 6a9649d5a..06bb71380 100644 --- a/python_apps/pypo/pypocli.py +++ b/python_apps/pypo/pypocli.py @@ -23,6 +23,7 @@ from configobj import ConfigObj # custom imports from api_clients import api_client +from std_err_override import LogWriter PYPO_VERSION = '1.1' @@ -45,12 +46,16 @@ parser.add_option("-c", "--check", help="Check the cached schedule and exit", de # configure logging logging.config.fileConfig("logging.cfg") +logger = logging.getLogger() +LogWriter.override_std_err(logger) + +#need to wait for Python 2.7 for this.. +#logging.captureWarnings(True) # loading config file try: config = ConfigObj('/etc/airtime/pypo.cfg') except Exception, e: - logger = logging.getLogger() logger.error('Error loading config file: %s', e) sys.exit() diff --git a/python_apps/pypo/pypofetch.py b/python_apps/pypo/pypofetch.py index de806f3c8..a7695490d 100644 --- a/python_apps/pypo/pypofetch.py +++ b/python_apps/pypo/pypofetch.py @@ -10,11 +10,17 @@ import copy from threading import Thread from api_clients import api_client +from std_err_override import LogWriter from configobj import ConfigObj # configure logging logging.config.fileConfig("logging.cfg") +logger = logging.getLogger() +LogWriter.override_std_err(logger) + +#need to wait for Python 2.7 for this.. +#logging.captureWarnings(True) # loading config file try: @@ -24,7 +30,6 @@ try: POLL_INTERVAL = int(config['poll_interval']) except Exception, e: - logger = logging.getLogger() logger.error('Error loading config file: %s', e) sys.exit() diff --git a/python_apps/pypo/pypofile.py b/python_apps/pypo/pypofile.py index 271aa9e0a..1a52fd5c8 100644 --- a/python_apps/pypo/pypofile.py +++ b/python_apps/pypo/pypofile.py @@ -8,8 +8,15 @@ import shutil import os import sys +from std_err_override import LogWriter + # configure logging logging.config.fileConfig("logging.cfg") +logger = logging.getLogger() +LogWriter.override_std_err(logger) + +#need to wait for Python 2.7 for this.. +#logging.captureWarnings(True) # loading config file try: @@ -19,7 +26,6 @@ try: POLL_INTERVAL = int(config['poll_interval']) except Exception, e: - logger = logging.getLogger() logger.error('Error loading config file: %s', e) sys.exit(1) diff --git a/python_apps/pypo/pypomessagehandler.py b/python_apps/pypo/pypomessagehandler.py index 23e269b16..128ebec13 100644 --- a/python_apps/pypo/pypomessagehandler.py +++ b/python_apps/pypo/pypomessagehandler.py @@ -10,8 +10,15 @@ from kombu.messaging import Exchange, Queue from kombu.simple import SimpleQueue import json +from std_err_override import LogWriter + # configure logging logging.config.fileConfig("logging.cfg") +logger = logging.getLogger('message_h') +LogWriter.override_std_err(logger) + +#need to wait for Python 2.7 for this.. +#logging.captureWarnings(True) # loading config file try: @@ -21,7 +28,6 @@ try: POLL_INTERVAL = int(config['poll_interval']) except Exception, e: - logger = logging.getLogger('message_h') logger.error('Error loading config file: %s', e) sys.exit() diff --git a/python_apps/pypo/pypopush.py b/python_apps/pypo/pypopush.py index 6efa6d857..c6063e9d6 100644 --- a/python_apps/pypo/pypopush.py +++ b/python_apps/pypo/pypopush.py @@ -16,11 +16,17 @@ from Queue import Empty from threading import Thread from api_clients import api_client +from std_err_override import LogWriter from configobj import ConfigObj # configure logging logging.config.fileConfig("logging.cfg") +logger = logging.getLogger() +LogWriter.override_std_err(logger) + +#need to wait for Python 2.7 for this.. +#logging.captureWarnings(True) # loading config file try: @@ -30,7 +36,6 @@ try: PUSH_INTERVAL = 2 MAX_LIQUIDSOAP_QUEUE_LENGTH = 2 except Exception, e: - logger = logging.getLogger() logger.error('Error loading config file %s', e) sys.exit() diff --git a/python_apps/std_err_override/LogWriter.py b/python_apps/std_err_override/LogWriter.py new file mode 100644 index 000000000..65da21ff8 --- /dev/null +++ b/python_apps/std_err_override/LogWriter.py @@ -0,0 +1,11 @@ +import sys + +class LogWriter(): + def __init__(self, logger): + self.logger = logger + + def write(self, txt): + self.logger.error(txt) + +def override_std_err(logger): + sys.stderr = LogWriter(logger) diff --git a/python_apps/std_err_override/__init__.py b/python_apps/std_err_override/__init__.py new file mode 100644 index 000000000..e69de29bb