@@ -88,6 +88,8 @@ def __init__(self, *args, **kwargs):
8888 that will be used to customize the indent of the output json.
8989 :param prefix: an optional string prefix added at the beginning of
9090 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'}
9193 :param json_indent: indent parameter for json.dumps
9294 :param json_ensure_ascii: ensure_ascii parameter for json.dumps
9395 :param reserved_attrs: an optional list of fields that will be skipped when
@@ -104,6 +106,7 @@ def __init__(self, *args, **kwargs):
104106 self .json_indent = kwargs .pop ("json_indent" , None )
105107 self .json_ensure_ascii = kwargs .pop ("json_ensure_ascii" , True )
106108 self .prefix = kwargs .pop ("prefix" , "" )
109+ self .rename_fields = kwargs .pop ("rename_fields" , {})
107110 reserved_attrs = kwargs .pop ("reserved_attrs" , RESERVED_ATTRS )
108111 self .reserved_attrs = dict (zip (reserved_attrs , reserved_attrs ))
109112 self .timestamp = kwargs .pop ("timestamp" , False )
@@ -148,7 +151,10 @@ def add_fields(self, log_record, record, message_dict):
148151 Override this method to implement custom logic for adding fields.
149152 """
150153 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 )
152158 log_record .update (message_dict )
153159 merge_record_extra (record , log_record , reserved = self ._skip_fields )
154160
0 commit comments