|
21 | 21 | import ch.qos.logback.classic.pattern.color.HighlightingCompositeConverter;
|
22 | 22 | import ch.qos.logback.classic.spi.ILoggingEvent;
|
23 | 23 | import ch.qos.logback.core.CoreConstants;
|
24 |
| -import ch.qos.logback.core.pattern.Converter; |
25 | 24 | import ch.qos.logback.core.pattern.DynamicConverter;
|
26 | 25 | import ch.qos.logback.core.pattern.PatternLayoutBase;
|
27 | 26 | import ch.qos.logback.core.pattern.color.*;
|
|
41 | 40 |
|
42 | 41 | public class PatternLayout extends PatternLayoutBase<ILoggingEvent> {
|
43 | 42 |
|
44 |
| - public static final Map<String, Supplier<DynamicConverter>> DEFAULT_CONVERTER_MAP = new HashMap<>(); |
| 43 | + public static final Map<String, Supplier<DynamicConverter>> DEFAULT_CONVERTER_SUPPLIER_MAP = new HashMap<>(); |
| 44 | + |
| 45 | + public static final Map<String, String> DEFAULT_CONVERTER_MAP = new HashMap<>(); |
45 | 46 | public static final Map<String, String> CONVERTER_CLASS_TO_KEY_MAP = new HashMap<String, String>();
|
46 | 47 |
|
47 | 48 | /**
|
48 | 49 | * @deprecated replaced by DEFAULT_CONVERTER_MAP
|
49 | 50 | */
|
50 |
| - public static final Map<String, Supplier<DynamicConverter>> defaultConverterMap = DEFAULT_CONVERTER_MAP; |
| 51 | + @Deprecated |
| 52 | + public static final Map<String, String> defaultConverterMap = DEFAULT_CONVERTER_MAP; |
51 | 53 |
|
52 | 54 | public static final String HEADER_PREFIX = "#logback.classic pattern: ";
|
53 | 55 |
|
54 | 56 | static {
|
55 |
| - DEFAULT_CONVERTER_MAP.putAll(Parser.DEFAULT_COMPOSITE_CONVERTER_MAP); |
| 57 | + DEFAULT_CONVERTER_SUPPLIER_MAP.putAll(Parser.DEFAULT_COMPOSITE_CONVERTER_MAP); |
56 | 58 |
|
57 |
| - DEFAULT_CONVERTER_MAP.put("d", DateConverter::new); |
58 |
| - DEFAULT_CONVERTER_MAP.put("date", DateConverter::new); |
| 59 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("d", DateConverter::new); |
| 60 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("date", DateConverter::new); |
59 | 61 | // used by PrefixComposite converter
|
60 | 62 | CONVERTER_CLASS_TO_KEY_MAP.put(DateConverter.class.getName(), "date");
|
61 | 63 |
|
62 |
| - DEFAULT_CONVERTER_MAP.put("ms", MicrosecondConverter::new); |
63 |
| - DEFAULT_CONVERTER_MAP.put("micros", MicrosecondConverter::new); |
| 64 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("ms", MicrosecondConverter::new); |
| 65 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("micros", MicrosecondConverter::new); |
64 | 66 | CONVERTER_CLASS_TO_KEY_MAP.put(MicrosecondConverter.class.getName(), "micros");
|
65 | 67 |
|
66 |
| - DEFAULT_CONVERTER_MAP.put("r", RelativeTimeConverter::new); |
67 |
| - DEFAULT_CONVERTER_MAP.put("relative", RelativeTimeConverter::new); |
| 68 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("r", RelativeTimeConverter::new); |
| 69 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("relative", RelativeTimeConverter::new); |
68 | 70 | CONVERTER_CLASS_TO_KEY_MAP.put(RelativeTimeConverter.class.getName(), "relative");
|
69 | 71 |
|
70 |
| - DEFAULT_CONVERTER_MAP.put("level", LevelConverter::new); |
71 |
| - DEFAULT_CONVERTER_MAP.put("le", LevelConverter::new); |
72 |
| - DEFAULT_CONVERTER_MAP.put("p", LevelConverter::new); |
| 72 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("level", LevelConverter::new); |
| 73 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("le", LevelConverter::new); |
| 74 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("p", LevelConverter::new); |
73 | 75 | CONVERTER_CLASS_TO_KEY_MAP.put(LevelConverter.class.getName(), "level");
|
74 | 76 |
|
75 |
| - DEFAULT_CONVERTER_MAP.put("t", ThreadConverter::new); |
76 |
| - DEFAULT_CONVERTER_MAP.put("thread", ThreadConverter::new); |
| 77 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("t", ThreadConverter::new); |
| 78 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("thread", ThreadConverter::new); |
77 | 79 | CONVERTER_CLASS_TO_KEY_MAP.put(ThreadConverter.class.getName(), "thread");
|
78 | 80 |
|
79 |
| - DEFAULT_CONVERTER_MAP.put("lo", LoggerConverter::new); |
80 |
| - DEFAULT_CONVERTER_MAP.put("logger", LoggerConverter::new); |
81 |
| - DEFAULT_CONVERTER_MAP.put("c", LoggerConverter::new); |
| 81 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("lo", LoggerConverter::new); |
| 82 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("logger", LoggerConverter::new); |
| 83 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("c", LoggerConverter::new); |
82 | 84 | CONVERTER_CLASS_TO_KEY_MAP.put(LoggerConverter.class.getName(), "logger");
|
83 | 85 |
|
84 |
| - DEFAULT_CONVERTER_MAP.put("m", MessageConverter::new); |
85 |
| - DEFAULT_CONVERTER_MAP.put("msg", MessageConverter::new); |
86 |
| - DEFAULT_CONVERTER_MAP.put("message", MessageConverter::new); |
| 86 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("m", MessageConverter::new); |
| 87 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("msg", MessageConverter::new); |
| 88 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("message", MessageConverter::new); |
87 | 89 | CONVERTER_CLASS_TO_KEY_MAP.put(MessageConverter.class.getName(), "message");
|
88 | 90 |
|
89 |
| - DEFAULT_CONVERTER_MAP.put("C", ClassOfCallerConverter::new); |
90 |
| - DEFAULT_CONVERTER_MAP.put("class", ClassOfCallerConverter::new); |
| 91 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("C", ClassOfCallerConverter::new); |
| 92 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("class", ClassOfCallerConverter::new); |
91 | 93 | CONVERTER_CLASS_TO_KEY_MAP.put(ClassOfCallerConverter.class.getName(), "class");
|
92 | 94 |
|
93 |
| - DEFAULT_CONVERTER_MAP.put("M", MethodOfCallerConverter::new); |
94 |
| - DEFAULT_CONVERTER_MAP.put("method", MethodOfCallerConverter::new); |
| 95 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("M", MethodOfCallerConverter::new); |
| 96 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("method", MethodOfCallerConverter::new); |
95 | 97 | CONVERTER_CLASS_TO_KEY_MAP.put(MethodOfCallerConverter.class.getName(), "method");
|
96 | 98 |
|
97 |
| - DEFAULT_CONVERTER_MAP.put("L", LineOfCallerConverter::new); |
98 |
| - DEFAULT_CONVERTER_MAP.put("line", LineOfCallerConverter::new); |
| 99 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("L", LineOfCallerConverter::new); |
| 100 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("line", LineOfCallerConverter::new); |
99 | 101 | CONVERTER_CLASS_TO_KEY_MAP.put(LineOfCallerConverter.class.getName(), "line");
|
100 | 102 |
|
101 |
| - DEFAULT_CONVERTER_MAP.put("F", FileOfCallerConverter::new); |
102 |
| - DEFAULT_CONVERTER_MAP.put("file", FileOfCallerConverter::new); |
| 103 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("F", FileOfCallerConverter::new); |
| 104 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("file", FileOfCallerConverter::new); |
103 | 105 | CONVERTER_CLASS_TO_KEY_MAP.put(FileOfCallerConverter.class.getName(), "file");
|
104 | 106 |
|
105 |
| - DEFAULT_CONVERTER_MAP.put("X", MDCConverter::new); |
106 |
| - DEFAULT_CONVERTER_MAP.put("mdc", MDCConverter::new); |
| 107 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("X", MDCConverter::new); |
| 108 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("mdc", MDCConverter::new); |
107 | 109 |
|
108 |
| - DEFAULT_CONVERTER_MAP.put("ex", ThrowableProxyConverter::new); |
109 |
| - DEFAULT_CONVERTER_MAP.put("exception", ThrowableProxyConverter::new); |
110 |
| - DEFAULT_CONVERTER_MAP.put("rEx", RootCauseFirstThrowableProxyConverter::new); |
111 |
| - DEFAULT_CONVERTER_MAP.put("rootException", RootCauseFirstThrowableProxyConverter::new); |
112 |
| - DEFAULT_CONVERTER_MAP.put("throwable", ThrowableProxyConverter::new); |
| 110 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("ex", ThrowableProxyConverter::new); |
| 111 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("exception", ThrowableProxyConverter::new); |
| 112 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("rEx", RootCauseFirstThrowableProxyConverter::new); |
| 113 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("rootException", RootCauseFirstThrowableProxyConverter::new); |
| 114 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("throwable", ThrowableProxyConverter::new); |
113 | 115 |
|
114 |
| - DEFAULT_CONVERTER_MAP.put("xEx", ExtendedThrowableProxyConverter::new); |
115 |
| - DEFAULT_CONVERTER_MAP.put("xException", ExtendedThrowableProxyConverter::new); |
116 |
| - DEFAULT_CONVERTER_MAP.put("xThrowable", ExtendedThrowableProxyConverter::new); |
| 116 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("xEx", ExtendedThrowableProxyConverter::new); |
| 117 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("xException", ExtendedThrowableProxyConverter::new); |
| 118 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("xThrowable", ExtendedThrowableProxyConverter::new); |
117 | 119 |
|
118 |
| - DEFAULT_CONVERTER_MAP.put("nopex", NopThrowableInformationConverter::new); |
119 |
| - DEFAULT_CONVERTER_MAP.put("nopexception", NopThrowableInformationConverter::new); |
| 120 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("nopex", NopThrowableInformationConverter::new); |
| 121 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("nopexception", NopThrowableInformationConverter::new); |
120 | 122 |
|
121 |
| - DEFAULT_CONVERTER_MAP.put("cn", ContextNameConverter::new); |
122 |
| - DEFAULT_CONVERTER_MAP.put("contextName", ContextNameConverter::new); |
| 123 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("cn", ContextNameConverter::new); |
| 124 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("contextName", ContextNameConverter::new); |
123 | 125 | CONVERTER_CLASS_TO_KEY_MAP.put(ContextNameConverter.class.getName(), "contextName");
|
124 | 126 |
|
125 |
| - DEFAULT_CONVERTER_MAP.put("caller", CallerDataConverter::new); |
| 127 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("caller", CallerDataConverter::new); |
126 | 128 | CONVERTER_CLASS_TO_KEY_MAP.put(CallerDataConverter.class.getName(), "caller");
|
127 | 129 |
|
128 |
| - DEFAULT_CONVERTER_MAP.put("marker", MarkerConverter::new); |
| 130 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("marker", MarkerConverter::new); |
129 | 131 | CONVERTER_CLASS_TO_KEY_MAP.put(MarkerConverter.class.getName(), "marker");
|
130 | 132 |
|
131 |
| - DEFAULT_CONVERTER_MAP.put("kvp", KeyValuePairConverter::new); |
| 133 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("kvp", KeyValuePairConverter::new); |
132 | 134 | CONVERTER_CLASS_TO_KEY_MAP.put(KeyValuePairConverter.class.getName(), "kvp");
|
133 | 135 |
|
134 |
| - DEFAULT_CONVERTER_MAP.put("maskedKvp", MaskedKeyValuePairConverter::new); |
| 136 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("maskedKvp", MaskedKeyValuePairConverter::new); |
135 | 137 | CONVERTER_CLASS_TO_KEY_MAP.put(MaskedKeyValuePairConverter.class.getName(), "maskedKvp");
|
136 | 138 |
|
137 |
| - DEFAULT_CONVERTER_MAP.put("property", PropertyConverter::new); |
138 |
| - |
139 |
| - DEFAULT_CONVERTER_MAP.put("n", LineSeparatorConverter::new); |
140 |
| - |
141 |
| - DEFAULT_CONVERTER_MAP.put("black", BlackCompositeConverter::new); |
142 |
| - DEFAULT_CONVERTER_MAP.put("red", RedCompositeConverter::new); |
143 |
| - DEFAULT_CONVERTER_MAP.put("green", GreenCompositeConverter::new); |
144 |
| - DEFAULT_CONVERTER_MAP.put("yellow", YellowCompositeConverter::new); |
145 |
| - DEFAULT_CONVERTER_MAP.put("blue", BlueCompositeConverter::new); |
146 |
| - DEFAULT_CONVERTER_MAP.put("magenta", MagentaCompositeConverter::new); |
147 |
| - DEFAULT_CONVERTER_MAP.put("cyan", CyanCompositeConverter::new); |
148 |
| - DEFAULT_CONVERTER_MAP.put("white", WhiteCompositeConverter::new); |
149 |
| - DEFAULT_CONVERTER_MAP.put("gray", GrayCompositeConverter::new); |
150 |
| - DEFAULT_CONVERTER_MAP.put("boldRed", BoldRedCompositeConverter::new); |
151 |
| - DEFAULT_CONVERTER_MAP.put("boldGreen", BoldGreenCompositeConverter::new); |
152 |
| - DEFAULT_CONVERTER_MAP.put("boldYellow", BoldYellowCompositeConverter::new); |
153 |
| - DEFAULT_CONVERTER_MAP.put("boldBlue", BoldBlueCompositeConverter::new); |
154 |
| - DEFAULT_CONVERTER_MAP.put("boldMagenta", BoldMagentaCompositeConverter::new); |
155 |
| - DEFAULT_CONVERTER_MAP.put("boldCyan", BoldCyanCompositeConverter::new); |
156 |
| - DEFAULT_CONVERTER_MAP.put("boldWhite", BoldWhiteCompositeConverter::new); |
157 |
| - DEFAULT_CONVERTER_MAP.put("highlight", HighlightingCompositeConverter::new); |
158 |
| - |
159 |
| - DEFAULT_CONVERTER_MAP.put("lsn", LocalSequenceNumberConverter::new); |
| 139 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("property", PropertyConverter::new); |
| 140 | + |
| 141 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("n", LineSeparatorConverter::new); |
| 142 | + |
| 143 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("black", BlackCompositeConverter::new); |
| 144 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("red", RedCompositeConverter::new); |
| 145 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("green", GreenCompositeConverter::new); |
| 146 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("yellow", YellowCompositeConverter::new); |
| 147 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("blue", BlueCompositeConverter::new); |
| 148 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("magenta", MagentaCompositeConverter::new); |
| 149 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("cyan", CyanCompositeConverter::new); |
| 150 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("white", WhiteCompositeConverter::new); |
| 151 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("gray", GrayCompositeConverter::new); |
| 152 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("boldRed", BoldRedCompositeConverter::new); |
| 153 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("boldGreen", BoldGreenCompositeConverter::new); |
| 154 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("boldYellow", BoldYellowCompositeConverter::new); |
| 155 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("boldBlue", BoldBlueCompositeConverter::new); |
| 156 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("boldMagenta", BoldMagentaCompositeConverter::new); |
| 157 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("boldCyan", BoldCyanCompositeConverter::new); |
| 158 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("boldWhite", BoldWhiteCompositeConverter::new); |
| 159 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("highlight", HighlightingCompositeConverter::new); |
| 160 | + |
| 161 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("lsn", LocalSequenceNumberConverter::new); |
160 | 162 | CONVERTER_CLASS_TO_KEY_MAP.put(LocalSequenceNumberConverter.class.getName(), "lsn");
|
161 | 163 |
|
162 |
| - DEFAULT_CONVERTER_MAP.put("sn", SequenceNumberConverter::new); |
163 |
| - DEFAULT_CONVERTER_MAP.put("sequenceNumber", SequenceNumberConverter::new); |
| 164 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("sn", SequenceNumberConverter::new); |
| 165 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("sequenceNumber", SequenceNumberConverter::new); |
164 | 166 | CONVERTER_CLASS_TO_KEY_MAP.put(SequenceNumberConverter.class.getName(), "sequenceNumber");
|
165 | 167 |
|
166 |
| - DEFAULT_CONVERTER_MAP.put("prefix", PrefixCompositeConverter::new); |
| 168 | + DEFAULT_CONVERTER_SUPPLIER_MAP.put("prefix", PrefixCompositeConverter::new); |
167 | 169 |
|
168 | 170 | }
|
169 | 171 |
|
170 | 172 | public PatternLayout() {
|
171 | 173 | this.postCompileProcessor = new EnsureExceptionHandling();
|
172 | 174 | }
|
173 | 175 |
|
174 |
| - public Map<String, Supplier<DynamicConverter>> getDefaultConverterMap() { |
| 176 | + public Map<String, Supplier<DynamicConverter>> getDefaultConverterSupplierMap() { |
| 177 | + return DEFAULT_CONVERTER_SUPPLIER_MAP; |
| 178 | + } |
| 179 | + |
| 180 | + /** |
| 181 | + * <p>BEWARE: The map of type String,String for mapping conversion words is deprecated. |
| 182 | + * Use {@link #getDefaultConverterSupplierMap()} instead.</p> |
| 183 | + * |
| 184 | + * <p>Existing code such as getDefaultMap().put("k", X.class.getName()) should be replaced by |
| 185 | + * getDefaultConverterSupplierMap().put("k", X::new) </p> |
| 186 | + * |
| 187 | + * <p>Note that values in the map will still be taken into account and processed correctly.</p> |
| 188 | + * |
| 189 | + * @return a map of keys and class names |
| 190 | + */ |
| 191 | + @Deprecated |
| 192 | + public Map<String, String> getDefaultConverterMap() { |
175 | 193 | return DEFAULT_CONVERTER_MAP;
|
176 | 194 | }
|
177 | 195 |
|
|
0 commit comments