1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.pattern;
18
19 import org.apache.logging.log4j.core.LogEvent;
20 import org.apache.logging.log4j.core.config.Configuration;
21 import org.apache.logging.log4j.core.config.plugins.Plugin;
22 import org.apache.logging.log4j.message.Message;
23 import org.apache.logging.log4j.message.MultiformatMessage;
24
25
26
27
28 @Plugin(name = "MessagePatternConverter", category = PatternConverter.CATEGORY)
29 @ConverterKeys({ "m", "msg", "message" })
30 public final class MessagePatternConverter extends LogEventPatternConverter {
31
32 private final String[] formats;
33
34 private final Configuration config;
35
36
37
38
39
40 private MessagePatternConverter(final Configuration config, final String[] options) {
41 super("Message", "message");
42 formats = options;
43 this.config = config;
44 }
45
46
47
48
49
50
51
52
53 public static MessagePatternConverter newInstance(final Configuration config, final String[] options) {
54 return new MessagePatternConverter(config, options);
55 }
56
57
58
59
60 @Override
61 public void format(final LogEvent event, final StringBuilder toAppendTo) {
62 final Message msg = event.getMessage();
63 if (msg != null) {
64 String result;
65 if (msg instanceof MultiformatMessage) {
66 result = ((MultiformatMessage) msg).getFormattedMessage(formats);
67 } else {
68 result = msg.getFormattedMessage();
69 }
70 if (result != null) {
71 toAppendTo.append(result);
72 } else {
73 toAppendTo.append("null");
74 }
75 }
76 }
77 }