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.util.OptionConverter;
22 import org.apache.logging.log4j.util.PerformanceSensitive;
23
24
25
26
27
28 @PerformanceSensitive("allocation")
29 public final class LiteralPatternConverter extends LogEventPatternConverter implements ArrayPatternConverter {
30
31
32
33
34 private final String literal;
35
36 private final Configuration config;
37
38 private final boolean substitute;
39
40
41
42
43
44
45
46
47
48 public LiteralPatternConverter(final Configuration config, final String literal, final boolean convertBackslashes) {
49 super("Literal", "literal");
50 this.literal = convertBackslashes ? OptionConverter.convertSpecialChars(literal) : literal;
51 this.config = config;
52 substitute = config != null && literal.contains("${");
53 }
54
55
56
57
58 @Override
59 public void format(final LogEvent event, final StringBuilder toAppendTo) {
60 toAppendTo.append(substitute ? config.getStrSubstitutor().replace(event, literal) : literal);
61 }
62
63
64
65
66 @Override
67 public void format(final Object obj, final StringBuilder output) {
68 output.append(substitute ? config.getStrSubstitutor().replace(literal) : literal);
69 }
70
71
72
73
74 @Override
75 public void format(final StringBuilder output, final Object... objects) {
76 output.append(substitute ? config.getStrSubstitutor().replace(literal) : literal);
77 }
78
79 public String getLiteral() {
80 return literal;
81 }
82
83 @Override
84 public boolean isVariable() {
85 return false;
86 }
87
88 @Override
89 public String toString() {
90 return "LiteralPatternConverter[literal=" + literal + ", config=" + config + ", substitute=" + substitute + "]";
91 }
92
93 }