85 lines
3.0 KiB
Diff
85 lines
3.0 KiB
Diff
commit dce7a38c693565b3e469f977acab653b8dc4d0ee
|
|
Author: Fabio Erculiani <lxnay@sabayon.org>
|
|
Date: Sun Aug 29 09:49:05 2010 +0200
|
|
|
|
[entropy.misc] LogFile: remove loggers cache, does more harm than good
|
|
|
|
diff --git a/libraries/entropy/misc.py b/libraries/entropy/misc.py
|
|
index 0534615..2aa544b 100644
|
|
--- a/libraries/entropy/misc.py
|
|
+++ b/libraries/entropy/misc.py
|
|
@@ -989,7 +989,6 @@ class LogFile:
|
|
}
|
|
LOG_FORMAT = "%(asctime)s %(levelname)s: %(message)s"
|
|
DATE_FORMAT = "[%H:%M:%S %d/%m/%Y %Z]"
|
|
- _HANDLER_CACHE = {}
|
|
|
|
def __init__(self, level = None, filename = None, header = "[LOG]"):
|
|
"""
|
|
@@ -1014,30 +1013,17 @@ class LogFile:
|
|
self.__level = LogFile.LEVELS.get(logger_level)
|
|
self.__logger.setLevel(logging.DEBUG)
|
|
|
|
- handler_cache_key = self.__handler_cache_key()
|
|
- cached_handler = LogFile._HANDLER_CACHE.get(handler_cache_key)
|
|
-
|
|
- if cached_handler is None:
|
|
- if self.__filename is not None:
|
|
- try:
|
|
- self.__handler = logging.FileHandler(self.__filename)
|
|
- except (IOError, OSError):
|
|
- self.__handler = logging.StreamHandler()
|
|
- else:
|
|
+ if self.__filename is not None:
|
|
+ try:
|
|
+ self.__handler = logging.FileHandler(self.__filename)
|
|
+ except (IOError, OSError):
|
|
self.__handler = logging.StreamHandler()
|
|
- LogFile._HANDLER_CACHE[handler_cache_key] = self.__handler
|
|
- self.__handler.setLevel(self.__level)
|
|
- self.__handler.setFormatter(logging.Formatter(LogFile.LOG_FORMAT,
|
|
- LogFile.DATE_FORMAT))
|
|
- self.__logger.addHandler(self.__handler)
|
|
else:
|
|
- self.__handler = cached_handler
|
|
-
|
|
- def __handler_cache_key(self):
|
|
- return (self.__filename, self.__level)
|
|
-
|
|
- def __del__(self):
|
|
- self.close()
|
|
+ self.__handler = logging.StreamHandler()
|
|
+ self.__handler.setLevel(self.__level)
|
|
+ self.__handler.setFormatter(logging.Formatter(LogFile.LOG_FORMAT,
|
|
+ LogFile.DATE_FORMAT))
|
|
+ self.__logger.addHandler(self.__handler)
|
|
|
|
def fileno(self):
|
|
return self.__handler.stream.fileno()
|
|
@@ -1047,16 +1033,17 @@ class LogFile:
|
|
if hasattr(self.__handler, 'flush'):
|
|
self.__handler.flush()
|
|
|
|
+ def __del__(self):
|
|
+ self.close()
|
|
+
|
|
def close(self):
|
|
""" Close log file """
|
|
- handler_cache_key = self.__handler_cache_key()
|
|
- # drop from cache
|
|
- handler = LogFile._HANDLER_CACHE.pop(handler_cache_key, None)
|
|
- if handler is not None:
|
|
- if hasattr(handler, 'close'):
|
|
- handler.close()
|
|
- handler = None
|
|
- self.__logger = None
|
|
+ if self.__handler is not None:
|
|
+ if hasattr(self.__handler, 'close'):
|
|
+ self.__handler.close()
|
|
+ self.__logger.removeHandler(self.__handler)
|
|
+ self.__handler = None
|
|
+ self.__logger = None
|
|
|
|
def _handler(self, mystr):
|
|
"""
|