136 lines
3.3 KiB
Python
136 lines
3.3 KiB
Python
# -*- test-case-name: twisted.logger.test -*-
|
|
# Copyright (c) Twisted Matrix Laboratories.
|
|
# See LICENSE for details.
|
|
|
|
"""
|
|
Twisted Logger: Classes and functions to do granular logging.
|
|
|
|
Example usage in a module C{some.module}::
|
|
|
|
from twisted.logger import Logger
|
|
log = Logger()
|
|
|
|
def handleData(data):
|
|
log.debug("Got data: {data!r}.", data=data)
|
|
|
|
Or in a class::
|
|
|
|
from twisted.logger import Logger
|
|
|
|
class Foo:
|
|
log = Logger()
|
|
|
|
def oops(self, data):
|
|
self.log.error("Oops! Invalid data from server: {data!r}",
|
|
data=data)
|
|
|
|
C{Logger}s have namespaces, for which logging can be configured independently.
|
|
Namespaces may be specified by passing in a C{namespace} argument to L{Logger}
|
|
when instantiating it, but if none is given, the logger will derive its own
|
|
namespace by using the module name of the callable that instantiated it, or, in
|
|
the case of a class, by using the fully qualified name of the class.
|
|
|
|
In the first example above, the namespace would be C{some.module}, and in the
|
|
second example, it would be C{some.module.Foo}.
|
|
|
|
@var globalLogPublisher: The L{LogPublisher} that all L{Logger} instances that
|
|
are not otherwise parameterized will publish events to by default.
|
|
@var globalLogBeginner: The L{LogBeginner} used to activate the main log
|
|
observer, whether it's a log file, or an observer pointing at stderr.
|
|
"""
|
|
|
|
__all__ = [
|
|
# From ._levels
|
|
"InvalidLogLevelError",
|
|
"LogLevel",
|
|
# From ._format
|
|
"formatEvent",
|
|
"formatEventAsClassicLogText",
|
|
"formatTime",
|
|
"timeFormatRFC3339",
|
|
"eventAsText",
|
|
# From ._flatten
|
|
"extractField",
|
|
# From ._interfaces
|
|
"ILogObserver",
|
|
"LogEvent",
|
|
# From ._logger
|
|
"Logger",
|
|
"_loggerFor",
|
|
# From ._observer
|
|
"LogPublisher",
|
|
# From ._buffer
|
|
"LimitedHistoryLogObserver",
|
|
# From ._file
|
|
"FileLogObserver",
|
|
"textFileLogObserver",
|
|
# From ._filter
|
|
"PredicateResult",
|
|
"ILogFilterPredicate",
|
|
"FilteringLogObserver",
|
|
"LogLevelFilterPredicate",
|
|
# From ._stdlib
|
|
"STDLibLogObserver",
|
|
# From ._io
|
|
"LoggingFile",
|
|
# From ._legacy
|
|
"LegacyLogObserverWrapper",
|
|
# From ._global
|
|
"globalLogPublisher",
|
|
"globalLogBeginner",
|
|
"LogBeginner",
|
|
# From ._json
|
|
"eventAsJSON",
|
|
"eventFromJSON",
|
|
"jsonFileLogObserver",
|
|
"eventsFromJSONLogFile",
|
|
# From ._capture
|
|
"capturedLogs",
|
|
]
|
|
|
|
from ._levels import InvalidLogLevelError, LogLevel
|
|
|
|
from ._flatten import extractField
|
|
|
|
from ._format import (
|
|
formatEvent,
|
|
formatEventAsClassicLogText,
|
|
formatTime,
|
|
timeFormatRFC3339,
|
|
eventAsText,
|
|
)
|
|
|
|
from ._interfaces import ILogObserver, LogEvent
|
|
|
|
from ._logger import Logger, _loggerFor
|
|
|
|
from ._observer import LogPublisher
|
|
|
|
from ._buffer import LimitedHistoryLogObserver
|
|
|
|
from ._file import FileLogObserver, textFileLogObserver
|
|
|
|
from ._filter import (
|
|
PredicateResult,
|
|
ILogFilterPredicate,
|
|
FilteringLogObserver,
|
|
LogLevelFilterPredicate,
|
|
)
|
|
|
|
from ._stdlib import STDLibLogObserver
|
|
|
|
from ._io import LoggingFile
|
|
|
|
from ._legacy import LegacyLogObserverWrapper
|
|
|
|
from ._global import globalLogPublisher, globalLogBeginner, LogBeginner
|
|
|
|
from ._json import (
|
|
eventAsJSON,
|
|
eventFromJSON,
|
|
jsonFileLogObserver,
|
|
eventsFromJSONLogFile,
|
|
)
|
|
|
|
from ._capture import capturedLogs
|