|
20 | 20 |
|
21 | 21 | import org.junit.jupiter.api.Test;
|
22 | 22 |
|
| 23 | +import org.springframework.boot.json.JsonWriter.Members; |
23 | 24 | import org.springframework.boot.json.JsonWriter.ValueProcessor;
|
24 | 25 | import org.springframework.boot.logging.structured.StructuredLogFormatterFactory.CommonFormatters;
|
25 | 26 | import org.springframework.boot.util.Instantiator.AvailableParameters;
|
@@ -104,18 +105,49 @@ void getUsingClassNameInjectsCustomParameter() {
|
104 | 105 | }
|
105 | 106 |
|
106 | 107 | @Test
|
107 |
| - void getInjectCustomizers() { |
| 108 | + void getInjectStringMembersCustomizer() { |
108 | 109 | this.environment.setProperty("logging.structured.json.rename.spring", "test");
|
109 | 110 | SpringFactoriesLoader factoriesLoader = mock(SpringFactoriesLoader.class);
|
110 |
| - StructuredLoggingJsonMembersCustomizer<?> customizer = (members) -> members |
111 |
| - .applyingValueProcessor(ValueProcessor.of(String.class, String::toUpperCase)); |
112 |
| - given(factoriesLoader.load(any(), any(ArgumentResolver.class))).willReturn(List.of(customizer)); |
| 111 | + given(factoriesLoader.load(any(), any(ArgumentResolver.class))) |
| 112 | + .willReturn(List.of(new StringMembersStructuredLoggingJsonMembersCustomizer())); |
113 | 113 | StructuredLogFormatterFactory<LogEvent> factory = new StructuredLogFormatterFactory<>(factoriesLoader,
|
114 | 114 | LogEvent.class, this.environment, this::addAvailableParameters, this::addCommonFormatters);
|
115 |
| - CutomizedFormatter formatter = (CutomizedFormatter) factory.get(CutomizedFormatter.class.getName()); |
| 115 | + CustomizedFormatter formatter = (CustomizedFormatter) factory.get(CustomizedFormatter.class.getName()); |
116 | 116 | assertThat(formatter.format(new LogEvent())).contains("\"test\":\"BOOT\"");
|
117 | 117 | }
|
118 | 118 |
|
| 119 | + @Test |
| 120 | + void getInjectObjectMembersCustomizer() { |
| 121 | + this.environment.setProperty("logging.structured.json.rename.spring", "test"); |
| 122 | + SpringFactoriesLoader factoriesLoader = mock(SpringFactoriesLoader.class); |
| 123 | + given(factoriesLoader.load(any(), any(ArgumentResolver.class))) |
| 124 | + .willReturn(List.of(new ObjectMembersStructuredLoggingJsonMembersCustomizer())); |
| 125 | + StructuredLogFormatterFactory<LogEvent> factory = new StructuredLogFormatterFactory<>(factoriesLoader, |
| 126 | + LogEvent.class, this.environment, this::addAvailableParameters, this::addCommonFormatters); |
| 127 | + CustomizedFormatter formatter = (CustomizedFormatter) factory.get(CustomizedFormatter.class.getName()); |
| 128 | + assertThat(formatter.format(new LogEvent())).contains("\"test\":\"BOOT\""); |
| 129 | + } |
| 130 | + |
| 131 | + static class StringMembersStructuredLoggingJsonMembersCustomizer |
| 132 | + implements StructuredLoggingJsonMembersCustomizer<String> { |
| 133 | + |
| 134 | + @Override |
| 135 | + public void customize(Members<String> members) { |
| 136 | + members.applyingValueProcessor(ValueProcessor.of(String.class, String::toUpperCase)); |
| 137 | + } |
| 138 | + |
| 139 | + } |
| 140 | + |
| 141 | + static class ObjectMembersStructuredLoggingJsonMembersCustomizer |
| 142 | + implements StructuredLoggingJsonMembersCustomizer<Object> { |
| 143 | + |
| 144 | + @Override |
| 145 | + public void customize(Members<Object> members) { |
| 146 | + members.applyingValueProcessor(ValueProcessor.of(String.class, String::toUpperCase)); |
| 147 | + } |
| 148 | + |
| 149 | + } |
| 150 | + |
119 | 151 | static class LogEvent {
|
120 | 152 |
|
121 | 153 | }
|
@@ -167,9 +199,9 @@ public String format(DifferentLogEvent event) {
|
167 | 199 |
|
168 | 200 | }
|
169 | 201 |
|
170 |
| - static class CutomizedFormatter extends JsonWriterStructuredLogFormatter<LogEvent> { |
| 202 | + static class CustomizedFormatter extends JsonWriterStructuredLogFormatter<LogEvent> { |
171 | 203 |
|
172 |
| - CutomizedFormatter(StructuredLoggingJsonMembersCustomizer<?> customizer) { |
| 204 | + CustomizedFormatter(StructuredLoggingJsonMembersCustomizer<?> customizer) { |
173 | 205 | super((members) -> members.add("spring", "boot"), customizer);
|
174 | 206 | }
|
175 | 207 |
|
|
0 commit comments