get rid of initialized flag

This commit is contained in:
Vishvananda Ishaya
2011-02-21 00:15:49 -08:00
parent 8151aa447f
commit 6146717784
5 changed files with 11 additions and 20 deletions

View File

@@ -29,7 +29,6 @@ import sys
import gflags import gflags
class FlagValues(gflags.FlagValues): class FlagValues(gflags.FlagValues):
"""Extension of gflags.FlagValues that allows undefined and runtime flags. """Extension of gflags.FlagValues that allows undefined and runtime flags.
@@ -93,7 +92,8 @@ class FlagValues(gflags.FlagValues):
self.__dict__['__stored_argv'] = original_argv self.__dict__['__stored_argv'] = original_argv
self.__dict__['__was_already_parsed'] = True self.__dict__['__was_already_parsed'] = True
self.ClearDirty() self.ClearDirty()
FlagValues.initialized = True from nova import log as logging
logging.reset()
return args return args
def Reset(self): def Reset(self):

View File

@@ -143,9 +143,7 @@ class NovaLogger(logging.Logger):
""" """
def __init__(self, name, level=NOTSET): def __init__(self, name, level=NOTSET):
logging.Logger.__init__(self, name, level) logging.Logger.__init__(self, name, level)
self.initialized = False self.setup_from_flags()
if flags.FlagValues.initialized:
self.setup_from_flags()
@staticmethod @staticmethod
def _get_level_from_flags(name): def _get_level_from_flags(name):
@@ -166,15 +164,6 @@ class NovaLogger(logging.Logger):
"""Setup logger from flags""" """Setup logger from flags"""
level_name = self._get_level_from_flags(self.name) level_name = self._get_level_from_flags(self.name)
self.setLevel(globals()[level_name]) self.setLevel(globals()[level_name])
self.initialized = True
if not logging.root.initialized:
logging.root.setup_from_flags()
def isEnabledFor(self, level):
"""Reset level after flags have been loaded"""
if not self.initialized and flags.FlagValues.initialized:
self.setup_from_flags()
return logging.Logger.isEnabledFor(self, level)
def _log(self, level, msg, args, exc_info=None, extra=None, context=None): def _log(self, level, msg, args, exc_info=None, extra=None, context=None):
"""Extract context from any log call""" """Extract context from any log call"""
@@ -304,6 +293,9 @@ if not isinstance(logging.root, NovaRootLogger):
NovaLogger.manager.root = logging.root NovaLogger.manager.root = logging.root
root = logging.root root = logging.root
def reset():
root.setup_from_flags()
def audit(msg, *args, **kwargs): def audit(msg, *args, **kwargs):
"""Shortcut for logging to root log with sevrity 'AUDIT'.""" """Shortcut for logging to root log with sevrity 'AUDIT'."""

View File

@@ -32,9 +32,12 @@ from nova import context
from nova import db from nova import db
from nova import fakerabbit from nova import fakerabbit
from nova import flags from nova import flags
from nova import log as logging
from nova import rpc from nova import rpc
from nova.network import manager as network_manager from nova.network import manager as network_manager
from nova.tests import fake_flags from nova.tests import fake_flags
logging.reset()
FLAGS = flags.FLAGS FLAGS = flags.FLAGS

View File

@@ -42,5 +42,3 @@ FLAGS.verbose = True
FLAGS.sql_connection = 'sqlite:///nova.sqlite' FLAGS.sql_connection = 'sqlite:///nova.sqlite'
FLAGS.use_ipv6 = True FLAGS.use_ipv6 = True
FLAGS.logfile = 'run_tests.err' FLAGS.logfile = 'run_tests.err'
# NOTE(vish): pretend like we've loaded flags from command line
flags.FlagValues.initialized = True

View File

@@ -46,14 +46,12 @@ class RootLoggerTestCase(test.TestCase):
def test_will_be_verbose_if_verbose_flag_set(self): def test_will_be_verbose_if_verbose_flag_set(self):
self.flags(verbose=True) self.flags(verbose=True)
self.log.initialized = False log.reset()
log.audit("foo", context=_fake_context())
self.assertEqual(log.DEBUG, self.log.level) self.assertEqual(log.DEBUG, self.log.level)
def test_will_not_be_verbose_if_verbose_flag_not_set(self): def test_will_not_be_verbose_if_verbose_flag_not_set(self):
self.flags(verbose=False) self.flags(verbose=False)
self.log.initialized = False log.reset()
log.audit("foo", context=_fake_context())
self.assertEqual(log.INFO, self.log.level) self.assertEqual(log.INFO, self.log.level)