@@ -88,6 +88,8 @@ def __init__(self, *args, **kwargs):
88
88
that will be used to customize the indent of the output json.
89
89
:param prefix: an optional string prefix added at the beginning of
90
90
the formatted string
91
+ :param rename_fields: an optional dict, used to rename field names in the output.
92
+ Rename message to @message: {'message': '@message'}
91
93
:param json_indent: indent parameter for json.dumps
92
94
:param json_ensure_ascii: ensure_ascii parameter for json.dumps
93
95
:param reserved_attrs: an optional list of fields that will be skipped when
@@ -104,6 +106,7 @@ def __init__(self, *args, **kwargs):
104
106
self .json_indent = kwargs .pop ("json_indent" , None )
105
107
self .json_ensure_ascii = kwargs .pop ("json_ensure_ascii" , True )
106
108
self .prefix = kwargs .pop ("prefix" , "" )
109
+ self .rename_fields = kwargs .pop ("rename_fields" , {})
107
110
reserved_attrs = kwargs .pop ("reserved_attrs" , RESERVED_ATTRS )
108
111
self .reserved_attrs = dict (zip (reserved_attrs , reserved_attrs ))
109
112
self .timestamp = kwargs .pop ("timestamp" , False )
@@ -148,7 +151,10 @@ def add_fields(self, log_record, record, message_dict):
148
151
Override this method to implement custom logic for adding fields.
149
152
"""
150
153
for field in self ._required_fields :
151
- log_record [field ] = record .__dict__ .get (field )
154
+ if field in self .rename_fields :
155
+ log_record [self .rename_fields [field ]] = record .__dict__ .get (field )
156
+ else :
157
+ log_record [field ] = record .__dict__ .get (field )
152
158
log_record .update (message_dict )
153
159
merge_record_extra (record , log_record , reserved = self ._skip_fields )
154
160
0 commit comments