16
16
17
17
from pythonjsonlogger import jsonlogger
18
18
19
+ from daiquiri import types
20
+
19
21
20
22
DEFAULT_FORMAT = (
21
23
"%(asctime)s [%(process)d] %(color)s%(levelname)-8.8s "
@@ -42,22 +44,23 @@ class ColorFormatter(logging.Formatter):
42
44
43
45
COLOR_STOP = "\033 [0m"
44
46
45
- def add_color (self , record : logging . LogRecord ) -> None :
47
+ def add_color (self , record : types . ColoredLogRecord ) -> None :
46
48
"""Add color to a record."""
47
49
if getattr (record , "_stream_is_a_tty" , False ):
48
- record .color = self .LEVEL_COLORS [record .levelno ] # type: ignore[attr-defined]
49
- record .color_stop = self .COLOR_STOP # type: ignore[attr-defined]
50
+ record .color = self .LEVEL_COLORS [record .levelno ]
51
+ record .color_stop = self .COLOR_STOP
50
52
else :
51
- record .color = "" # type: ignore[attr-defined]
52
- record .color_stop = "" # type: ignore[attr-defined]
53
+ record .color = ""
54
+ record .color_stop = ""
53
55
54
- def remove_color (self , record : logging . LogRecord ) -> None :
56
+ def remove_color (self , record : types . ColoredLogRecord ) -> None :
55
57
"""Remove color from a record."""
56
- del record .color # type: ignore[attr-defined]
57
- del record .color_stop # type: ignore[attr-defined]
58
+ del record .color
59
+ del record .color_stop
58
60
59
61
def format (self , record : logging .LogRecord ) -> str :
60
62
"""Format a record."""
63
+ record = typing .cast (types .ColoredLogRecord , record )
61
64
self .add_color (record )
62
65
s = super (ColorFormatter , self ).format (record )
63
66
self .remove_color (record )
@@ -118,24 +121,25 @@ def __init__(
118
121
self .extras_suffix = extras_suffix
119
122
super (ExtrasFormatter , self ).__init__ (* args , ** kwargs )
120
123
121
- def add_extras (self , record : logging . LogRecord ) -> None :
124
+ def add_extras (self , record : types . ExtrasLogRecord ) -> None :
122
125
if not hasattr (record , "_daiquiri_extra_keys" ):
123
- record .extras = "" # type: ignore[attr-defined]
126
+ record .extras = ""
124
127
return
125
128
126
129
extras = self .extras_separator .join (
127
130
self .extras_template .format (k , getattr (record , k ))
128
- for k in record ._daiquiri_extra_keys # type: ignore[attr-defined]
131
+ for k in record ._daiquiri_extra_keys
129
132
if k != "_daiquiri_extra_keys" and k not in self .keywords
130
133
)
131
134
if extras != "" :
132
135
extras = self .extras_prefix + extras + self .extras_suffix
133
- record .extras = extras # type: ignore[attr-defined]
136
+ record .extras = extras
134
137
135
- def remove_extras (self , record : logging . LogRecord ) -> None :
136
- del record .extras # type: ignore[attr-defined]
138
+ def remove_extras (self , record : types . ExtrasLogRecord ) -> None :
139
+ del record .extras
137
140
138
141
def format (self , record : logging .LogRecord ) -> str :
142
+ record = typing .cast (types .ExtrasLogRecord , record )
139
143
self .add_extras (record )
140
144
s = super (ExtrasFormatter , self ).format (record )
141
145
self .remove_extras (record )
@@ -146,6 +150,7 @@ class ColorExtrasFormatter(ColorFormatter, ExtrasFormatter):
146
150
"""Combines functionality of ColorFormatter and ExtrasFormatter."""
147
151
148
152
def format (self , record : logging .LogRecord ) -> str :
153
+ record = typing .cast (types .ColoredLogRecord , record )
149
154
self .add_color (record )
150
155
s = ExtrasFormatter .format (self , record )
151
156
self .remove_color (record )
0 commit comments