mirror of
https://github.com/python/cpython.git
synced 2025-11-03 11:23:31 +00:00
gh-92128: Add __class_getitem__ to logging.LoggerAdapter and logging.StreamHandler (#92129)
Closes #92128
This commit is contained in:
parent
031397063e
commit
ab616d323d
3 changed files with 10 additions and 0 deletions
|
|
@ -25,6 +25,7 @@ To use, simply 'import logging' and log away!
|
||||||
|
|
||||||
import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
|
import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
|
||||||
|
|
||||||
|
from types import GenericAlias
|
||||||
from string import Template
|
from string import Template
|
||||||
from string import Formatter as StrFormatter
|
from string import Formatter as StrFormatter
|
||||||
|
|
||||||
|
|
@ -1145,6 +1146,8 @@ class StreamHandler(Handler):
|
||||||
name += ' '
|
name += ' '
|
||||||
return '<%s %s(%s)>' % (self.__class__.__name__, name, level)
|
return '<%s %s(%s)>' % (self.__class__.__name__, name, level)
|
||||||
|
|
||||||
|
__class_getitem__ = classmethod(GenericAlias)
|
||||||
|
|
||||||
|
|
||||||
class FileHandler(StreamHandler):
|
class FileHandler(StreamHandler):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1939,6 +1942,8 @@ class LoggerAdapter(object):
|
||||||
level = getLevelName(logger.getEffectiveLevel())
|
level = getLevelName(logger.getEffectiveLevel())
|
||||||
return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
|
return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
|
||||||
|
|
||||||
|
__class_getitem__ = classmethod(GenericAlias)
|
||||||
|
|
||||||
root = RootLogger(WARNING)
|
root = RootLogger(WARNING)
|
||||||
Logger.root = root
|
Logger.root = root
|
||||||
Logger.manager = Manager(Logger.root)
|
Logger.manager = Manager(Logger.root)
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ from contextvars import ContextVar, Token
|
||||||
from dataclasses import Field
|
from dataclasses import Field
|
||||||
from functools import partial, partialmethod, cached_property
|
from functools import partial, partialmethod, cached_property
|
||||||
from graphlib import TopologicalSorter
|
from graphlib import TopologicalSorter
|
||||||
|
from logging import LoggerAdapter, StreamHandler
|
||||||
from mailbox import Mailbox, _PartialFile
|
from mailbox import Mailbox, _PartialFile
|
||||||
try:
|
try:
|
||||||
import ctypes
|
import ctypes
|
||||||
|
|
@ -113,6 +114,7 @@ class BaseTest(unittest.TestCase):
|
||||||
MappingProxyType, AsyncGeneratorType,
|
MappingProxyType, AsyncGeneratorType,
|
||||||
DirEntry,
|
DirEntry,
|
||||||
chain,
|
chain,
|
||||||
|
LoggerAdapter, StreamHandler,
|
||||||
TemporaryDirectory, SpooledTemporaryFile,
|
TemporaryDirectory, SpooledTemporaryFile,
|
||||||
Queue, SimpleQueue,
|
Queue, SimpleQueue,
|
||||||
_AssertRaisesContext,
|
_AssertRaisesContext,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
Add :meth:`~object.__class_getitem__` to :class:`logging.LoggerAdapter` and
|
||||||
|
:class:`logging.StreamHandler`, allowing them to be parameterized at runtime.
|
||||||
|
Patch by Alex Waygood.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue