diff options
author | John Dennis <jdennis@redhat.com> | 2011-11-30 11:08:42 -0500 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2011-12-01 08:34:02 +0100 |
commit | 167813f34350466be569be26f4faa8b9a05e5920 (patch) | |
tree | e9df21a77042214ff5416c6e475d61378185e296 /ipapython/log_manager.py | |
parent | 27931dcb29ebeb15aae4d17d745252ba75f69bae (diff) | |
download | freeipa-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.py | 43 |
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. |