def test_log_format_overrides_formatter(self): self.CONF(['--log-format', '[Any format]']) log._setup_logging_from_conf(self.CONF, 'test', 'test') logger = log._loggers[None].logger for handler in logger.handlers: formatter = handler.formatter self.assertTrue(isinstance(formatter, logging.Formatter))
def test_default_formatter(self): log._setup_logging_from_conf(self.CONF, 'test', 'test') logger = log._loggers[None].logger for handler in logger.handlers: formatter = handler.formatter self.assertTrue(isinstance(formatter, formatters.ContextFormatter))
def test_log_dir_handlers(self): log_dir = tempfile.mkdtemp() self.CONF(['--log-dir', log_dir]) self.CONF.set_default('use_stderr', False) log._setup_logging_from_conf(self.CONF, 'test', 'test') logger = log._loggers[None].logger self.assertEqual(1, len(logger.handlers)) self.assertIsInstance(logger.handlers[0], logging.handlers.WatchedFileHandler)
def test_handlers_cleanup(self): """Test that all old handlers get removed from log_root.""" old_handlers = [log.handlers.ColorHandler(), log.handlers.ColorHandler()] log._loggers[None].logger.handlers = list(old_handlers) log._setup_logging_from_conf(self.CONF, 'test', 'test') handlers = log._loggers[None].logger.handlers self.assertEqual(1, len(handlers)) self.assertNotIn(handlers[0], old_handlers)
def setUp(self): super(CommonLoggerTestsMixIn, self).setUp() # common context has different fields to the defaults in log.py self.config_fixture = self.useFixture( fixture_config.Config(cfg.ConfigOpts())) self.config = self.config_fixture.config self.CONF = self.config_fixture.conf log.register_options(self.config_fixture.conf) self.config(logging_context_format_string='%(asctime)s %(levelname)s ' '%(name)s [%(request_id)s ' '%(user)s %(tenant)s] ' '%(message)s') self.log = None log._setup_logging_from_conf(self.config_fixture.conf, 'test', 'test')
def test_log_publish_errors_handlers(self): fake_handler = mock.MagicMock() with mock.patch('oslo_utils.importutils.import_object', return_value=fake_handler) as mock_import: log_dir = tempfile.mkdtemp() self.CONF(['--log-dir', log_dir]) self.CONF.set_default('use_stderr', False) self.CONF.set_default('publish_errors', True) log._setup_logging_from_conf(self.CONF, 'test', 'test') logger = log._loggers[None].logger self.assertEqual(2, len(logger.handlers)) self.assertIsInstance(logger.handlers[0], logging.handlers.WatchedFileHandler) self.assertEqual(logger.handlers[1], fake_handler) mock_import.assert_called_once_with( 'oslo_messaging.notify.log_handler.PublishErrorsHandler', logging.ERROR)
def test_mutate(self): conf = cfg.CONF old_config = ("[DEFAULT]\n" "debug = false\n") new_config = ("[DEFAULT]\n" "debug = true\n") paths = self.create_tempfiles([('old', old_config), ('new', new_config)]) log.register_options(conf) conf(['--config-file', paths[0]]) log_root = log.getLogger(None).logger log._setup_logging_from_conf(conf, 'test', 'test') self.assertEqual(conf.debug, False) self.assertEqual(conf.verbose, True) self.assertEqual(log.INFO, log_root.getEffectiveLevel()) shutil.copy(paths[1], paths[0]) conf.mutate_config_files() self.assertEqual(conf.debug, True) self.assertEqual(conf.verbose, True) self.assertEqual(log.DEBUG, log_root.getEffectiveLevel())