mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-08 04:54:47 +08:00
Add __setattr__ to logging.LogRecord (#8064)
This commit is contained in:
@@ -413,6 +413,8 @@ class LogRecord:
|
||||
sinfo: str | None = ...,
|
||||
) -> None: ...
|
||||
def getMessage(self) -> str: ...
|
||||
# Allows setting contextual information on LogRecord objects as per the docs, see #7833
|
||||
def __setattr__(self, __name: str, __value: Any) -> None: ...
|
||||
|
||||
_L = TypeVar("_L", bound=Logger | LoggerAdapter[Any])
|
||||
|
||||
|
||||
16
test_cases/stdlib/test_logging.py
Normal file
16
test_cases/stdlib/test_logging.py
Normal file
@@ -0,0 +1,16 @@
|
||||
import logging
|
||||
from typing import Any
|
||||
|
||||
# This pattern comes from the logging docs, and should therefore pass a type checker
|
||||
# See https://docs.python.org/3/library/logging.html#logrecord-objects
|
||||
|
||||
old_factory = logging.getLogRecordFactory()
|
||||
|
||||
|
||||
def record_factory(*args: Any, **kwargs: Any) -> logging.LogRecord:
|
||||
record = old_factory(*args, **kwargs)
|
||||
record.custom_attribute = 0xDECAFBAD
|
||||
return record
|
||||
|
||||
|
||||
logging.setLogRecordFactory(record_factory)
|
||||
Reference in New Issue
Block a user