1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.parser;
18
19 import com.fasterxml.jackson.databind.DeserializationFeature;
20 import com.fasterxml.jackson.databind.ObjectMapper;
21 import com.fasterxml.jackson.databind.ObjectReader;
22 import org.apache.logging.log4j.core.LogEvent;
23 import org.apache.logging.log4j.core.impl.Log4jLogEvent;
24
25 import java.io.IOException;
26
27 class AbstractJacksonLogEventParser implements TextLogEventParser {
28 private final ObjectReader objectReader;
29
30 AbstractJacksonLogEventParser(final ObjectMapper objectMapper) {
31 objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
32 this.objectReader = objectMapper.readerFor(Log4jLogEvent.class);
33 }
34
35 @Override
36 public LogEvent parseFrom(final String input) throws ParseException {
37 try {
38 return objectReader.readValue(input);
39 } catch (final IOException e) {
40 throw new ParseException(e);
41 }
42 }
43
44 @Override
45 public LogEvent parseFrom(final byte[] input) throws ParseException {
46 try {
47 return objectReader.readValue(input);
48 } catch (final IOException e) {
49 throw new ParseException(e);
50 }
51 }
52
53 @Override
54 public LogEvent parseFrom(final byte[] input, final int offset, final int length) throws ParseException {
55 try {
56 return objectReader.readValue(input, offset, length);
57 } catch (final IOException e) {
58 throw new ParseException(e);
59 }
60 }
61 }