mirror of https://github.com/python/cpython.git
Added some methods to LoggerAdapter, and updated documentation.
This commit is contained in:
parent
ceff566886
commit
c84f016988
|
@ -2599,8 +2599,8 @@ should, then :meth:`flush` is expected to do the needful.
|
||||||
.. method:: flush()
|
.. method:: flush()
|
||||||
|
|
||||||
For a :class:`MemoryHandler`, flushing means just sending the buffered
|
For a :class:`MemoryHandler`, flushing means just sending the buffered
|
||||||
records to the target, if there is one. Override if you want different
|
records to the target, if there is one. The buffer is also cleared when
|
||||||
behavior.
|
this happens. Override if you want different behavior.
|
||||||
|
|
||||||
|
|
||||||
.. method:: setTarget(target)
|
.. method:: setTarget(target)
|
||||||
|
@ -2972,15 +2972,18 @@ __ context-info_
|
||||||
'extra'. The return value is a (*msg*, *kwargs*) tuple which has the
|
'extra'. The return value is a (*msg*, *kwargs*) tuple which has the
|
||||||
(possibly modified) versions of the arguments passed in.
|
(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`,
|
methods of :class:`Logger`, i.e. :meth:`debug`, :meth:`info`, :meth:`warning`,
|
||||||
:meth:`error`, :meth:`exception`, :meth:`critical` and :meth:`log`. These
|
:meth:`error`, :meth:`exception`, :meth:`critical`, :meth:`log`,
|
||||||
methods have the same signatures as their counterparts in :class:`Logger`, so
|
:meth:`isEnabledFor`, :meth:`getEffectiveLevel`, :meth:`setLevel`,
|
||||||
you can use the two types of instances interchangeably.
|
: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
|
.. versionchanged:: 3.2
|
||||||
The :meth:`isEnabledFor` method was added to :class:`LoggerAdapter`. This
|
The :meth:`isEnabledFor`, :meth:`getEffectiveLevel`, :meth:`setLevel` and
|
||||||
method delegates to the underlying logger.
|
:meth:`hasHandlers` methods were added to :class:`LoggerAdapter`. These
|
||||||
|
methods delegate to the underlying logger.
|
||||||
|
|
||||||
|
|
||||||
Thread Safety
|
Thread Safety
|
||||||
|
|
|
@ -1400,6 +1400,8 @@ def warning(self, msg, *args, **kwargs):
|
||||||
msg, kwargs = self.process(msg, kwargs)
|
msg, kwargs = self.process(msg, kwargs)
|
||||||
self.logger.warning(msg, *args, **kwargs)
|
self.logger.warning(msg, *args, **kwargs)
|
||||||
|
|
||||||
|
warn = warning
|
||||||
|
|
||||||
def error(self, msg, *args, **kwargs):
|
def error(self, msg, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
Delegate an error call to the underlying logger, after adding
|
Delegate an error call to the underlying logger, after adding
|
||||||
|
@ -1433,12 +1435,24 @@ def log(self, level, msg, *args, **kwargs):
|
||||||
msg, kwargs = self.process(msg, kwargs)
|
msg, kwargs = self.process(msg, kwargs)
|
||||||
self.logger.log(level, msg, *args, **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):
|
def isEnabledFor(self, level):
|
||||||
"""
|
"""
|
||||||
See if the underlying logger is enabled for the specified level.
|
See if the underlying logger is enabled for the specified level.
|
||||||
"""
|
"""
|
||||||
return self.logger.isEnabledFor(level)
|
return self.logger.isEnabledFor(level)
|
||||||
|
|
||||||
|
def getEffectiveLevel(self):
|
||||||
|
"""
|
||||||
|
Get the effective level for the underlying logger.
|
||||||
|
"""
|
||||||
|
return self.logger.getEffectiveLevel()
|
||||||
|
|
||||||
def hasHandlers(self):
|
def hasHandlers(self):
|
||||||
"""
|
"""
|
||||||
See if the underlying logger has any handlers.
|
See if the underlying logger has any handlers.
|
||||||
|
|
|
@ -1131,6 +1131,8 @@ def flush(self):
|
||||||
For a MemoryHandler, flushing means just sending the buffered
|
For a MemoryHandler, flushing means just sending the buffered
|
||||||
records to the target, if there is one. Override if you want
|
records to the target, if there is one. Override if you want
|
||||||
different behaviour.
|
different behaviour.
|
||||||
|
|
||||||
|
The record buffer is also cleared by this operation.
|
||||||
"""
|
"""
|
||||||
if self.target:
|
if self.target:
|
||||||
for record in self.buffer:
|
for record in self.buffer:
|
||||||
|
|
|
@ -154,7 +154,7 @@ def test_flat(self):
|
||||||
|
|
||||||
ERR = logging.getLogger("ERR")
|
ERR = logging.getLogger("ERR")
|
||||||
ERR.setLevel(logging.ERROR)
|
ERR.setLevel(logging.ERROR)
|
||||||
INF = logging.getLogger("INF")
|
INF = logging.LoggerAdapter(logging.getLogger("INF"), {})
|
||||||
INF.setLevel(logging.INFO)
|
INF.setLevel(logging.INFO)
|
||||||
DEB = logging.getLogger("DEB")
|
DEB = logging.getLogger("DEB")
|
||||||
DEB.setLevel(logging.DEBUG)
|
DEB.setLevel(logging.DEBUG)
|
||||||
|
|
|
@ -58,6 +58,10 @@ Core and Builtins
|
||||||
Library
|
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 #1686: Fix string.Template when overriding the pattern attribute.
|
||||||
|
|
||||||
- Issue #9854: SocketIO objects now observe the RawIOBase interface in
|
- Issue #9854: SocketIO objects now observe the RawIOBase interface in
|
||||||
|
|
Loading…
Reference in New Issue