You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by Franz Wong <fr...@gmail.com> on 2018/01/04 02:03:53 UTC

Add custom message serializer for JsonLayout

Hi,

I tried to add a custom message serializer for JsonLayout. But it keeps
using the default "MessageSerializer". So how can I create a custom message
serializer? Thanks.

-Franz

Here is my code

"JsonObjectMessage"

@JsonSerialize(using = JsonObjectMessageSerializer.class)

public class JsonObjectMessage extends ObjectMessage {

private static final long serialVersionUID = 1L;


public JsonObjectMessage(Object obj) {

super(obj);

}

}

"JsonObjectMessageSerializer"

public class JsonObjectMessageSerializer extends
StdScalarSerializer<JsonObjectMessage>
{


private static final long serialVersionUID = 1L;


protected JsonObjectMessageSerializer() {

super(JsonObjectMessage.class);

}


@Override

public void serialize(JsonObjectMessage message, JsonGenerator gen,
SerializerProvider provider) throws IOException {

gen.writeObject(message.getParameter());

}


}