9
9
import traceback
10
10
import importlib
11
11
12
- from typing import Dict , Union , List , Tuple
12
+ from typing import Any , Dict , Union , List , Tuple
13
13
14
14
from inspect import istraceback
15
15
@@ -163,7 +163,7 @@ def parse(self) -> List[str]:
163
163
else :
164
164
return []
165
165
166
- def add_fields (self , log_record , record , message_dict ) :
166
+ def add_fields (self , log_record : Dict [ str , Any ], record : logging . LogRecord , message_dict : Dict [ str , Any ]) -> None :
167
167
"""
168
168
Override this method to implement custom logic for adding fields.
169
169
"""
@@ -195,15 +195,17 @@ def jsonify_log_record(self, log_record):
195
195
indent = self .json_indent ,
196
196
ensure_ascii = self .json_ensure_ascii )
197
197
198
- def serialize_log_record (self , log_record ) :
198
+ def serialize_log_record (self , log_record : Dict [ str , Any ]) -> str :
199
199
"""Returns the final representation of the log record."""
200
200
return "%s%s" % (self .prefix , self .jsonify_log_record (log_record ))
201
201
202
- def format (self , record ) :
202
+ def format (self , record : logging . LogRecord ) -> str :
203
203
"""Formats a log record and serializes to json"""
204
- message_dict = {}
205
- if isinstance (record .msg , dict ):
206
- message_dict = record .msg
204
+ message_dict : Dict [str , Any ] = {}
205
+ # FIXME: logging.LogRecord.msg and logging.LogRecord.message in typeshed
206
+ # are always type of str. We shouldn't need to override that.
207
+ if isinstance (record .msg , dict ): # type: ignore
208
+ message_dict = record .msg # type: ignore
207
209
record .message = None
208
210
else :
209
211
record .message = record .getMessage ()
@@ -226,6 +228,7 @@ def format(self, record):
226
228
# Python2.7 doesn't have stack_info.
227
229
pass
228
230
231
+ log_record : Dict [str , Any ]
229
232
log_record = OrderedDict ()
230
233
self .add_fields (log_record , record , message_dict )
231
234
log_record = self .process_log_record (log_record )
0 commit comments