move exception hook into appropriate location and remove extra stuff from module namespace
This commit is contained in:
@@ -85,7 +85,6 @@ from nova.auth import manager
|
|||||||
from nova.cloudpipe import pipelib
|
from nova.cloudpipe import pipelib
|
||||||
from nova.db import migration
|
from nova.db import migration
|
||||||
|
|
||||||
|
|
||||||
FLAGS = flags.FLAGS
|
FLAGS = flags.FLAGS
|
||||||
flags.DECLARE('fixed_range', 'nova.network.manager')
|
flags.DECLARE('fixed_range', 'nova.network.manager')
|
||||||
flags.DECLARE('num_networks', 'nova.network.manager')
|
flags.DECLARE('num_networks', 'nova.network.manager')
|
||||||
|
|||||||
45
nova/log.py
45
nova/log.py
@@ -130,9 +130,6 @@ def basicConfig():
|
|||||||
|
|
||||||
|
|
||||||
logging.basicConfig = basicConfig
|
logging.basicConfig = basicConfig
|
||||||
_syslog = SysLogHandler(address='/dev/log')
|
|
||||||
_filelog = None
|
|
||||||
_streamlog = StreamHandler()
|
|
||||||
|
|
||||||
|
|
||||||
class NovaLogger(logging.Logger):
|
class NovaLogger(logging.Logger):
|
||||||
@@ -193,16 +190,6 @@ class NovaLogger(logging.Logger):
|
|||||||
self.error(message, **kwargs)
|
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):
|
class NovaFormatter(logging.Formatter):
|
||||||
"""
|
"""
|
||||||
A nova.context.RequestContext aware formatter configured through flags.
|
A nova.context.RequestContext aware formatter configured through flags.
|
||||||
@@ -251,25 +238,30 @@ _formatter = NovaFormatter()
|
|||||||
|
|
||||||
class NovaRootLogger(NovaLogger):
|
class NovaRootLogger(NovaLogger):
|
||||||
def __init__(self, name, level=NOTSET):
|
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)
|
NovaLogger.__init__(self, name, level)
|
||||||
self.addHandler(_streamlog)
|
|
||||||
|
|
||||||
def setup_from_flags(self):
|
def setup_from_flags(self):
|
||||||
"""Setup logger from flags"""
|
"""Setup logger from flags"""
|
||||||
global _filelog
|
global _filelog
|
||||||
if FLAGS.use_syslog:
|
if FLAGS.use_syslog:
|
||||||
self.addHandler(_syslog)
|
self.addHandler(self.syslog)
|
||||||
else:
|
else:
|
||||||
self.removeHandler(_syslog)
|
self.removeHandler(self.syslog)
|
||||||
logpath = _get_log_file_path()
|
logpath = _get_log_file_path()
|
||||||
if logpath:
|
if logpath:
|
||||||
if not _filelog:
|
self.removeHandler(self.streamlog)
|
||||||
_filelog = WatchedFileHandler(logpath)
|
if logpath != self.logpath:
|
||||||
self.addHandler(_filelog)
|
self.removeHandler(self.filelog)
|
||||||
self.removeHandler(_streamlog)
|
self.filelog = WatchedFileHandler(logpath)
|
||||||
|
self.addHandler(self.filelog)
|
||||||
|
self.logpath = logpath
|
||||||
else:
|
else:
|
||||||
self.removeHandler(_filelog)
|
self.removeHandler(self.filelog)
|
||||||
self.addHandler(_streamlog)
|
self.addHandler(self.streamlog)
|
||||||
if FLAGS.verbose:
|
if FLAGS.verbose:
|
||||||
self.setLevel(DEBUG)
|
self.setLevel(DEBUG)
|
||||||
else:
|
else:
|
||||||
@@ -284,6 +276,15 @@ if not isinstance(logging.root, NovaRootLogger):
|
|||||||
NovaLogger.manager.root = logging.root
|
NovaLogger.manager.root = logging.root
|
||||||
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():
|
def reset():
|
||||||
"""Resets logging handlers. Should be called if FLAGS changes."""
|
"""Resets logging handlers. Should be called if FLAGS changes."""
|
||||||
for logger in logging.Logger.manager.loggerDict.itervalues():
|
for logger in logging.Logger.manager.loggerDict.itervalues():
|
||||||
|
|||||||
Reference in New Issue
Block a user