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.db import migration
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FLAGS = flags.FLAGS
 | 
			
		||||
flags.DECLARE('fixed_range', '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
 | 
			
		||||
_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():
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user