__init__.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. # -*- test-case-name: twisted.logger.test -*-
  2. # Copyright (c) Twisted Matrix Laboratories.
  3. # See LICENSE for details.
  4. """
  5. Twisted Logger: Classes and functions to do granular logging.
  6. Example usage in a module C{some.module}::
  7. from twisted.logger import Logger
  8. log = Logger()
  9. def handleData(data):
  10. log.debug("Got data: {data!r}.", data=data)
  11. Or in a class::
  12. from twisted.logger import Logger
  13. class Foo(object):
  14. log = Logger()
  15. def oops(self, data):
  16. self.log.error("Oops! Invalid data from server: {data!r}",
  17. data=data)
  18. C{Logger}s have namespaces, for which logging can be configured independently.
  19. Namespaces may be specified by passing in a C{namespace} argument to L{Logger}
  20. when instantiating it, but if none is given, the logger will derive its own
  21. namespace by using the module name of the callable that instantiated it, or, in
  22. the case of a class, by using the fully qualified name of the class.
  23. In the first example above, the namespace would be C{some.module}, and in the
  24. second example, it would be C{some.module.Foo}.
  25. @var globalLogPublisher: The L{LogPublisher} that all L{Logger} instances that
  26. are not otherwise parameterized will point to by default.
  27. @type globalLogPublisher: L{LogPublisher}
  28. @var globalLogBeginner: The L{LogBeginner} used to activate the main log
  29. observer, whether it's a log file, or an observer pointing at stderr.
  30. @type globalLogBeginner: L{LogBeginner}
  31. """
  32. __all__ = [
  33. # From ._levels
  34. "InvalidLogLevelError", "LogLevel",
  35. # From ._format
  36. "formatEvent", "formatEventAsClassicLogText",
  37. "formatTime", "timeFormatRFC3339",
  38. "eventAsText",
  39. # From ._flatten
  40. "extractField",
  41. # From ._logger
  42. "Logger", "_loggerFor",
  43. # From ._observer
  44. "ILogObserver", "LogPublisher",
  45. # From ._buffer
  46. "LimitedHistoryLogObserver",
  47. # From ._file
  48. "FileLogObserver", "textFileLogObserver",
  49. # From ._filter
  50. "PredicateResult", "ILogFilterPredicate",
  51. "FilteringLogObserver", "LogLevelFilterPredicate",
  52. # From ._stdlib
  53. "STDLibLogObserver",
  54. # From ._io
  55. "LoggingFile",
  56. # From ._legacy
  57. "LegacyLogObserverWrapper",
  58. # From ._global
  59. "globalLogPublisher", "globalLogBeginner", "LogBeginner",
  60. # From ._json
  61. "eventAsJSON", "eventFromJSON",
  62. "jsonFileLogObserver", "eventsFromJSONLogFile",
  63. # From ._capture
  64. "capturedLogs",
  65. ]
  66. from ._levels import InvalidLogLevelError, LogLevel
  67. from ._flatten import extractField
  68. from ._format import (
  69. formatEvent, formatEventAsClassicLogText, formatTime, timeFormatRFC3339,
  70. eventAsText
  71. )
  72. from ._logger import Logger, _loggerFor
  73. from ._observer import ILogObserver, LogPublisher
  74. from ._buffer import LimitedHistoryLogObserver
  75. from ._file import FileLogObserver, textFileLogObserver
  76. from ._filter import (
  77. PredicateResult, ILogFilterPredicate, FilteringLogObserver,
  78. LogLevelFilterPredicate
  79. )
  80. from ._stdlib import STDLibLogObserver
  81. from ._io import LoggingFile
  82. from ._legacy import LegacyLogObserverWrapper
  83. from ._global import (
  84. globalLogPublisher, globalLogBeginner, LogBeginner
  85. )
  86. from ._json import (
  87. eventAsJSON, eventFromJSON,
  88. jsonFileLogObserver, eventsFromJSONLogFile
  89. )
  90. from ._capture import capturedLogs