|
1 | 1 | package com.sap.hcp.cf.logging.servlet.filter;
|
2 | 2 |
|
| 3 | +import java.util.function.UnaryOperator; |
| 4 | +import java.util.stream.Stream; |
| 5 | + |
| 6 | +import javax.servlet.Filter; |
| 7 | + |
3 | 8 | import org.slf4j.MDC;
|
4 | 9 |
|
5 | 10 | /**
|
@@ -63,14 +68,21 @@ public class RequestLoggingFilter extends CompositeFilter {
|
63 | 68 | @Deprecated
|
64 | 69 | public static final String WRAP_REQUEST_INIT_PARAM = "wrapRequest";
|
65 | 70 |
|
| 71 | + public static Filter[] getDefaultFilters() { |
| 72 | + return new Filter[] { new AddVcapEnvironmentToLogContextFilter(), new AddHttpHeadersToLogContextFilter(), |
| 73 | + new CorrelationIdFilter(), new DynamicLogLevelFilter(), new GenerateRequestLogFilter() }; |
| 74 | + } |
| 75 | + |
66 | 76 | public RequestLoggingFilter() {
|
67 |
| - super(new AddVcapEnvironmentToLogContextFilter(), new AddHttpHeadersToLogContextFilter(), |
68 |
| - new CorrelationIdFilter(), new DynamicLogLevelFilter(), new GenerateRequestLogFilter()); |
| 77 | + super(getDefaultFilters()); |
69 | 78 | }
|
70 | 79 |
|
71 | 80 | public RequestLoggingFilter(RequestRecordFactory requestRecordFactory) {
|
72 |
| - super(new AddVcapEnvironmentToLogContextFilter(), new AddHttpHeadersToLogContextFilter(), |
73 |
| - new CorrelationIdFilter(), new DynamicLogLevelFilter(), new GenerateRequestLogFilter( |
74 |
| - requestRecordFactory)); |
| 81 | + super(Stream.of(getDefaultFilters()).map(injectFactory(requestRecordFactory)).toArray(Filter[]::new)); |
| 82 | + } |
| 83 | + |
| 84 | + private static UnaryOperator<Filter> injectFactory(RequestRecordFactory requestRecordFactory) { |
| 85 | + return filter -> filter instanceof GenerateRequestLogFilter ? new GenerateRequestLogFilter(requestRecordFactory) |
| 86 | + : filter; |
75 | 87 | }
|
76 | 88 | }
|
0 commit comments