summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2011-02-21 01:26:15 -0800
committerVishvananda Ishaya <vishvananda@gmail.com>2011-02-21 01:26:15 -0800
commit753d3a6915ad8387ea29ad1a7fb4aed74c4b71fd (patch)
tree9444db8c9bf3e56d8a4cadb3a0c9b29e865e8977
parente773c16e1bce0e00b269394d1ed20d15884827ff (diff)
downloadnova-753d3a6915ad8387ea29ad1a7fb4aed74c4b71fd.tar.gz
nova-753d3a6915ad8387ea29ad1a7fb4aed74c4b71fd.tar.xz
nova-753d3a6915ad8387ea29ad1a7fb4aed74c4b71fd.zip
move exception hook into appropriate location and remove extra stuff from module namespace
-rwxr-xr-xbin/nova-manage1
-rw-r--r--nova/log.py45
2 files changed, 23 insertions, 23 deletions
diff --git a/bin/nova-manage b/bin/nova-manage
index 878a9afaa..861798717 100755
--- a/bin/nova-manage
+++ b/bin/nova-manage
@@ -85,7 +85,6 @@ from nova.auth import manager
from nova.cloudpipe import pipelib
from nova.db import migration
-
FLAGS = flags.FLAGS
flags.DECLARE('fixed_range', 'nova.network.manager')
flags.DECLARE('num_networks', 'nova.network.manager')
diff --git a/nova/log.py b/nova/log.py
index 0cd42d00e..5ffb52cde 100644
--- a/nova/log.py
+++ b/nova/log.py
@@ -130,9 +130,6 @@ def basicConfig():
logging.basicConfig = basicConfig
-_syslog = SysLogHandler(address='/dev/log')
-_filelog = None
-_streamlog = StreamHandler()
class NovaLogger(logging.Logger):
@@ -193,16 +190,6 @@ class NovaLogger(logging.Logger):
self.error(message, **kwargs)
-def handle_exception(type, value, tb):
- if len(logging.root.handlers) == 0:
- logging.root.addHandler(_streamlog)
- logging.root.critical(str(value), exc_info=(type, value, tb))
-
-
-sys.excepthook = handle_exception
-logging.setLoggerClass(NovaLogger)
-
-
class NovaFormatter(logging.Formatter):
"""
A nova.context.RequestContext aware formatter configured through flags.
@@ -251,25 +238,30 @@ _formatter = NovaFormatter()
class NovaRootLogger(NovaLogger):
def __init__(self, name, level=NOTSET):
+ self.logpath = None
+ self.filelog = None
+ self.syslog = SysLogHandler(address='/dev/log')
+ self.streamlog = StreamHandler()
NovaLogger.__init__(self, name, level)
- self.addHandler(_streamlog)
def setup_from_flags(self):
"""Setup logger from flags"""
global _filelog
if FLAGS.use_syslog:
- self.addHandler(_syslog)
+ self.addHandler(self.syslog)
else:
- self.removeHandler(_syslog)
+ self.removeHandler(self.syslog)
logpath = _get_log_file_path()
if logpath:
- if not _filelog:
- _filelog = WatchedFileHandler(logpath)
- self.addHandler(_filelog)
- self.removeHandler(_streamlog)
+ self.removeHandler(self.streamlog)
+ if logpath != self.logpath:
+ self.removeHandler(self.filelog)
+ self.filelog = WatchedFileHandler(logpath)
+ self.addHandler(self.filelog)
+ self.logpath = logpath
else:
- self.removeHandler(_filelog)
- self.addHandler(_streamlog)
+ self.removeHandler(self.filelog)
+ self.addHandler(self.streamlog)
if FLAGS.verbose:
self.setLevel(DEBUG)
else:
@@ -284,6 +276,15 @@ if not isinstance(logging.root, NovaRootLogger):
NovaLogger.manager.root = logging.root
root = logging.root
+
+def handle_exception(type, value, tb):
+ root.critical(str(value), exc_info=(type, value, tb))
+
+
+sys.excepthook = handle_exception
+logging.setLoggerClass(NovaLogger)
+
+
def reset():
"""Resets logging handlers. Should be called if FLAGS changes."""
for logger in logging.Logger.manager.loggerDict.itervalues():