Go to the latest version of this document.

# ``twisted`.`logger`.`STDLibLogObserver``

class documentation

`class STDLibLogObserver: (source)`

Constructor: `STDLibLogObserver(name, stackDepth)`

Implements interfaces: `twisted.logger.ILogObserver`

View In Hierarchy

Log observer that writes to the python standard library's `logging` module.

Note
Warning: specific logging configurations (example: network) can lead to this observer blocking. Nothing is done here to prevent that, so be sure to not to configure the standard library logging module to block when used in conjunction with this module: code within Twisted, such as twisted.web, assumes that logging does not block.

Method | `__call__` | Format an event and bridge it to Python logging.
Method | `__init__` | No summary
Class Variable | `defaultStackDepth` | This is the default number of frames that it takes to get from `STDLibLogObserver` through the logging module, plus one; in other words, the number of frames if you were to call a `STDLibLogObserver` directly...
Instance Variable | `logger` | Undocumented
Instance Variable | `stackDepth` | Undocumented
Method | `_findCaller` | Based on the stack depth passed to this `STDLibLogObserver`, identify the calling function.

def __call__(self, event: `LogEvent`): (source)
from `twisted.logger.ILogObserver`

Format an event and bridge it to Python logging.

def __init__(self, name: `str` = 'twisted', stackDepth: `int` = defaultStackDepth): (source)

Parameters
name:`str` | logger identifier.
stackDepth:`int` | The depth of the stack to investigate for caller metadata.

defaultStackDepth: `int` = (source)

This is the default number of frames that it takes to get from `STDLibLogObserver` through the logging module, plus one; in other words, the number of frames if you were to call a `STDLibLogObserver` directly. This is useful to use as an offset for the `stackDepth` parameter to `__init__`, to add frames for other publishers.

logger = (source)

Undocumented

stackDepth = (source)

Undocumented

def _findCaller(self, stackInfo: `bool` = False, stackLevel: `int` = 1) -> `tuple[str, int, str, None]`: (source)

Based on the stack depth passed to this `STDLibLogObserver`, identify the calling function.

Parameters
stackInfo:`bool` | Whether or not to construct stack information. (Currently ignored.)
stackLevel:`int` | The number of stack frames to skip when determining the caller (currently ignored; use stackDepth on the instance).

Returns
`tuple[str, int, str, None]` | Depending on Python version, either a 3-tuple of (filename, lineno, name) or a 4-tuple of that plus stack information.