12
12
import org .springframework .web .servlet .config .annotation .EnableWebMvc ;
13
13
14
14
import com .sap .hcp .cf .logging .sample .springboot .keystore .KeyStoreDynLogConfiguration ;
15
- import com .sap .hcp .cf .logging .servlet .dynlog .DynLogConfiguration ;
15
+ import com .sap .hcp .cf .logging .servlet .dynlog .DynamicLogLevelConfiguration ;
16
+ import com .sap .hcp .cf .logging .servlet .filter .AddHttpHeadersToLogContextFilter ;
17
+ import com .sap .hcp .cf .logging .servlet .filter .AddVcapEnvironmentToLogContextFilter ;
18
+ import com .sap .hcp .cf .logging .servlet .filter .CompositeFilter ;
19
+ import com .sap .hcp .cf .logging .servlet .filter .CorrelationIdFilter ;
20
+ import com .sap .hcp .cf .logging .servlet .filter .DynamicLogLevelFilter ;
21
+ import com .sap .hcp .cf .logging .servlet .filter .GenerateRequestLogFilter ;
16
22
import com .sap .hcp .cf .logging .servlet .filter .RequestLoggingFilter ;
17
23
18
24
@ SpringBootApplication
@@ -31,9 +37,10 @@ public static void main(String[] args) {
31
37
* @return a registration of the {@link RequestLoggingFilter}
32
38
*/
33
39
@ Bean
34
- public FilterRegistrationBean <RequestLoggingFilter > loggingFilter (@ Autowired DynLogConfiguration dynLogConfig ) {
35
- FilterRegistrationBean <RequestLoggingFilter > registrationBean = new FilterRegistrationBean <>();
36
- registrationBean .setFilter (new RequestLoggingFilter (() -> dynLogConfig ));
40
+ public FilterRegistrationBean <MyLoggingFilter > loggingFilter (
41
+ @ Autowired DynamicLogLevelConfiguration dynLogConfig ) {
42
+ FilterRegistrationBean <MyLoggingFilter > registrationBean = new FilterRegistrationBean <>();
43
+ registrationBean .setFilter (new MyLoggingFilter (dynLogConfig ));
37
44
registrationBean .setName ("request-logging" );
38
45
registrationBean .addUrlPatterns ("/*" );
39
46
registrationBean .setDispatcherTypes (DispatcherType .REQUEST );
@@ -48,4 +55,13 @@ public FilterRegistrationBean<RequestLoggingFilter> loggingFilter(@Autowired Dyn
48
55
public Clock clock () {
49
56
return Clock .systemUTC ();
50
57
}
58
+
59
+ private class MyLoggingFilter extends CompositeFilter {
60
+
61
+ private MyLoggingFilter (DynamicLogLevelConfiguration dynLogConfig ) {
62
+ super (new AddVcapEnvironmentToLogContextFilter (), new AddHttpHeadersToLogContextFilter (),
63
+ new CorrelationIdFilter (), new DynamicLogLevelFilter (() -> dynLogConfig ),
64
+ new GenerateRequestLogFilter ());
65
+ }
66
+ }
51
67
}
0 commit comments