]> granicus.if.org Git - python/commitdiff
Added some methods to LoggerAdapter, and updated documentation.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Tue, 21 Sep 2010 11:25:39 +0000 (11:25 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Tue, 21 Sep 2010 11:25:39 +0000 (11:25 +0000)
Doc/library/logging.rst
Lib/logging/__init__.py
Lib/logging/handlers.py
Lib/test/test_logging.py
Misc/NEWS

index 5d62d508f3abe38872d4060ffb30b398f2d773a4..c0e1144412331ac64543db5652b81510015a33b3 100644 (file)
@@ -2599,8 +2599,8 @@ should, then :meth:`flush` is expected to do the needful.
    .. method:: flush()
 
       For a :class:`MemoryHandler`, flushing means just sending the buffered
-      records to the target, if there is one. Override if you want different
-      behavior.
+      records to the target, if there is one. The buffer is also cleared when
+      this happens. Override if you want different behavior.
 
 
    .. method:: setTarget(target)
@@ -2972,15 +2972,18 @@ __ context-info_
     'extra'. The return value is a (*msg*, *kwargs*) tuple which has the
     (possibly modified) versions of the arguments passed in.
 
-In addition to the above, :class:`LoggerAdapter` supports all the logging
+In addition to the above, :class:`LoggerAdapter` supports the following
 methods of :class:`Logger`, i.e. :meth:`debug`, :meth:`info`, :meth:`warning`,
-:meth:`error`, :meth:`exception`, :meth:`critical` and :meth:`log`. These
-methods have the same signatures as their counterparts in :class:`Logger`, so
-you can use the two types of instances interchangeably.
+:meth:`error`, :meth:`exception`, :meth:`critical`, :meth:`log`,
+:meth:`isEnabledFor`, :meth:`getEffectiveLevel`, :meth:`setLevel`,
+:meth:`hasHandlers`. These methods have the same signatures as their
+counterparts in :class:`Logger`, so you can use the two types of instances
+interchangeably.
 
 .. versionchanged:: 3.2
-   The :meth:`isEnabledFor` method was added to :class:`LoggerAdapter`.  This
-   method delegates to the underlying logger.
+   The :meth:`isEnabledFor`, :meth:`getEffectiveLevel`, :meth:`setLevel` and
+   :meth:`hasHandlers` methods were added to :class:`LoggerAdapter`.  These
+   methods delegate to the underlying logger.
 
 
 Thread Safety
index 42b957ca5ae87e314e9ffdd6ae799d3780e9371f..b7086d5eca9f4d92a4e8ea2c1b45926fb8cc996c 100644 (file)
@@ -1400,6 +1400,8 @@ class LoggerAdapter(object):
         msg, kwargs = self.process(msg, kwargs)
         self.logger.warning(msg, *args, **kwargs)
 
+    warn = warning
+
     def error(self, msg, *args, **kwargs):
         """
         Delegate an error call to the underlying logger, after adding
@@ -1433,12 +1435,24 @@ class LoggerAdapter(object):
         msg, kwargs = self.process(msg, kwargs)
         self.logger.log(level, msg, *args, **kwargs)
 
+    def setLevel(self, level):
+        """
+        Set the specified level on the underlying logger.
+        """
+        self.logger.setLevel(level)
+
     def isEnabledFor(self, level):
         """
         See if the underlying logger is enabled for the specified level.
         """
         return self.logger.isEnabledFor(level)
 
+    def getEffectiveLevel(self):
+        """
+        Get the effective level for the underlying logger.
+        """
+        return self.logger.getEffectiveLevel()
+
     def hasHandlers(self):
         """
         See if the underlying logger has any handlers.
index 744f59b765eb41c0d07f2a8eaac59befc7e4a638..ce0673d9a1705a34f0c315af47eafc6957112afc 100644 (file)
@@ -1131,6 +1131,8 @@ class MemoryHandler(BufferingHandler):
         For a MemoryHandler, flushing means just sending the buffered
         records to the target, if there is one. Override if you want
         different behaviour.
+
+        The record buffer is also cleared by this operation.
         """
         if self.target:
             for record in self.buffer:
index 7506dba125b8483ed1115931aa217a135793bff8..c5d8bac966c6e1357b6f171c7d9ca6ac008d82e2 100644 (file)
@@ -154,7 +154,7 @@ class BuiltinLevelsTest(BaseTest):
 
         ERR = logging.getLogger("ERR")
         ERR.setLevel(logging.ERROR)
-        INF = logging.getLogger("INF")
+        INF = logging.LoggerAdapter(logging.getLogger("INF"), {})
         INF.setLevel(logging.INFO)
         DEB = logging.getLogger("DEB")
         DEB.setLevel(logging.DEBUG)
index 9ac3e0d7cb7ff35348fe1017e80e0b335e96afda..cd93537264c5f2d5ac1866d73ba0b128145bc361 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -58,6 +58,10 @@ Core and Builtins
 Library
 -------
 
+- logging: hasHandlers method was added to Logger, and isEnabledFor,
+  getEffectiveLevel, hasHandlers and setLevel were added to LoggerAdapter.
+  LoggerAdapter was introduced into the unit tests for logging.
+
 - Issue #1686: Fix string.Template when overriding the pattern attribute.
 
 - Issue #9854: SocketIO objects now observe the RawIOBase interface in