summaryrefslogtreecommitdiffstats
path: root/ipapython/log_manager.py
diff options
context:
space:
mode:
authorJohn Dennis <jdennis@redhat.com>2011-11-30 11:08:42 -0500
committerMartin Kosek <mkosek@redhat.com>2011-12-01 08:34:02 +0100
commit167813f34350466be569be26f4faa8b9a05e5920 (patch)
treee9df21a77042214ff5416c6e475d61378185e296 /ipapython/log_manager.py
parent27931dcb29ebeb15aae4d17d745252ba75f69bae (diff)
downloadfreeipa-167813f34350466be569be26f4faa8b9a05e5920.tar.gz
freeipa-167813f34350466be569be26f4faa8b9a05e5920.tar.xz
freeipa-167813f34350466be569be26f4faa8b9a05e5920.zip
Restore default log level in server to INFO
The default log level for server messages captured by httpd's error_log historically was INFO. The log_manager patch had it set to ERROR, this patch resets it back to INFO. Although it would have been trival to set the default_level to INFO in IPALogManager.configure_from_env() that is not logically the correct place. It would be much better if the default_level can be reset by simply assigning it to the log_mgr. To accomplish that LogManager.default_level was converted to a property with a getter and setter. The setter runs LogManager.apply_configuratin() after the default_level is modified. LogManager.set_default_level() was also added to allow simultaneously updating the configure_state. While testing some minor problems were observed and also fixed: * Removed some print statement which had been left in by mistake * Removed the ability to set the handler level in the config file because of chicken-and-egg issues of when handlers get created. The Env config file format is too inflexible to support detailed logging configuration. If the Env config format is ever made more flexible we can come back and add this back in. The handler config setting in Env had never been used and never worked so there is no issue in removing it.
Diffstat (limited to 'ipapython/log_manager.py')
-rw-r--r--ipapython/log_manager.py43
1 files changed, 39 insertions, 4 deletions
diff --git a/ipapython/log_manager.py b/ipapython/log_manager.py
index 736d95310..c84714210 100644
--- a/ipapython/log_manager.py
+++ b/ipapython/log_manager.py
@@ -769,21 +769,56 @@ class LogManager(object):
LogManager instance
'''
+ self.loggers = {} # dict, key is logger name, value is logger object
+ self.handlers = {} # dict, key is handler name, value is handler object
+
self.configure_state = configure_state
self.root_logger_name = root_logger_name
- self.default_level = logging.ERROR
+ self.default_level = 'error'
self.debug = False
self.verbose = False
self.logger_regexps = []
- self.loggers = {} # dict, key is logger name, value is logger object
- self.handlers = {} # dict, key is handler name, value is handler object
-
self.root_logger = self.get_logger(self.root_logger_name)
# Stop loggers and handlers from searching above our root
self.root_logger.propagate = False
+ def _get_default_level(self):
+ return self._default_level
+
+ def _set_default_level(self, value):
+ level = parse_log_level(value)
+ self._default_level = level
+ self.apply_configuration()
+
+ default_level = property(_get_default_level, _set_default_level,
+ doc='see log_manager.parse_log_level()` for details on how the level can be specified during assignement.')
+
+ def set_default_level(self, level, configure_state=None):
+ '''
+ Reset the default logger level, updates all loggers.
+ Note, the default_level may also be set by assigning to the
+ default_level attribute but that does not update the configure_state,
+ this method is provided as a convenience to simultaneously set the
+ configure_state if so desired.
+
+ :parameters:
+ level
+ The new default level for the log manager. See
+ `log_manager.parse_log_level()` for details on how the
+ level can be specified.
+ configure_state
+ If other than None update the log manger's configure_state
+ variable to this object. Clients of the log manager can
+ use configure_state to track the state of the log manager.
+
+ '''
+ level = parse_log_level(level)
+ self._default_level = level
+ self.apply_configuration(configure_state)
+
+
def __str__(self):
'''
When str() is called on the LogManager output it's state.