Skip to content

Commit 1d306db

Browse files
feat(console): add envId and orgId to the loggers
1 parent 4fc4078 commit 1d306db

File tree

6 files changed

+64
-1
lines changed

6 files changed

+64
-1
lines changed

gravitee-apim-rest-api/gravitee-apim-rest-api-management-v2/gravitee-apim-rest-api-management-v2-security/src/main/java/io/gravitee/rest/api/management/v2/security/config/BasicSecurityConfigurerAdapter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import io.gravitee.rest.api.security.cookies.CookieGenerator;
3030
import io.gravitee.rest.api.security.csrf.CookieCsrfSignedTokenRepository;
3131
import io.gravitee.rest.api.security.csrf.CsrfRequestMatcher;
32+
import io.gravitee.rest.api.security.filter.ContextualLoggingFilter;
3233
import io.gravitee.rest.api.security.filter.CsrfIncludeFilter;
3334
import io.gravitee.rest.api.security.filter.GraviteeContextAuthorizationFilter;
3435
import io.gravitee.rest.api.security.filter.GraviteeContextFilter;
@@ -198,6 +199,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
198199
new GraviteeContextFilter(installationTypeDomainService, accessPointQueryService, environmentService),
199200
CorsFilter.class
200201
);
202+
http.addFilterAfter(new ContextualLoggingFilter(), GraviteeContextFilter.class);
201203
http.addFilterAfter(new GraviteeContextAuthorizationFilter(), AuthorizationFilter.class);
202204

203205
return http.build();

gravitee-apim-rest-api/gravitee-apim-rest-api-management/gravitee-apim-rest-api-management-rest/src/main/resources/logback.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
2020
<encoder>
21-
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
21+
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} %X{orgId} %X{envId} - %msg%n</pattern>
2222
</encoder>
2323
</appender>
2424

gravitee-apim-rest-api/gravitee-apim-rest-api-management/gravitee-apim-rest-api-management-security/src/main/java/io/gravitee/rest/api/management/security/config/BasicSecurityConfigurerAdapter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import io.gravitee.rest.api.security.cookies.CookieGenerator;
3030
import io.gravitee.rest.api.security.csrf.CookieCsrfSignedTokenRepository;
3131
import io.gravitee.rest.api.security.csrf.CsrfRequestMatcher;
32+
import io.gravitee.rest.api.security.filter.ContextualLoggingFilter;
3233
import io.gravitee.rest.api.security.filter.CsrfIncludeFilter;
3334
import io.gravitee.rest.api.security.filter.GraviteeContextAuthorizationFilter;
3435
import io.gravitee.rest.api.security.filter.GraviteeContextFilter;
@@ -198,6 +199,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
198199
new GraviteeContextFilter(installationTypeDomainService, accessPointQueryService, environmentService),
199200
CorsFilter.class
200201
);
202+
http.addFilterAfter(new ContextualLoggingFilter(), GraviteeContextFilter.class);
201203
http.addFilterAfter(new GraviteeContextAuthorizationFilter(), AuthorizationFilter.class);
202204

203205
return http.build();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*
2+
* Copyright © 2015 The Gravitee team (http://gravitee.io)
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package io.gravitee.rest.api.security.filter;
17+
18+
import io.gravitee.rest.api.service.common.GraviteeContext;
19+
import jakarta.servlet.FilterChain;
20+
import jakarta.servlet.ServletException;
21+
import jakarta.servlet.ServletRequest;
22+
import jakarta.servlet.ServletResponse;
23+
import java.io.IOException;
24+
import lombok.RequiredArgsConstructor;
25+
import lombok.extern.slf4j.Slf4j;
26+
import org.slf4j.MDC;
27+
import org.springframework.web.filter.GenericFilterBean;
28+
29+
@Slf4j
30+
@RequiredArgsConstructor
31+
public class ContextualLoggingFilter extends GenericFilterBean {
32+
33+
@Override
34+
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
35+
MDC.clear();
36+
String organization = GraviteeContext.getCurrentOrganization();
37+
38+
if (organization != null) {
39+
MDC.put("orgId", organization);
40+
}
41+
String environment = GraviteeContext.getCurrentEnvironment();
42+
43+
if (environment != null) {
44+
MDC.put("envId", environment);
45+
}
46+
47+
log.debug("Contextual logging is on");
48+
49+
filterChain.doFilter(request, response);
50+
}
51+
}

helm/templates/api/api-configmap.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,9 +694,15 @@ data:
694694
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
695695
<file>${gravitee.management.log.dir}/gravitee.log</file>
696696
{{ .Values.api.logging.file.rollingPolicy | indent 14 }}
697+
{{- if .Values.api.logging.file.contextualLoggingEnabled}}
698+
<encoder>
699+
<pattern>{{ .Values.api.logging.file.contextualLoggingEncoderPattern }}</pattern>
700+
</encoder>
701+
{{- else}}
697702
<encoder>
698703
<pattern>{{ .Values.api.logging.file.encoderPattern }}</pattern>
699704
</encoder>
705+
{{- end}}
700706
</appender>
701707
{{- end }}
702708

helm/values.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,7 @@ api:
475475
encoderPattern: "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
476476
file:
477477
enabled: true
478+
contextualLoggingEnabled: false
478479
rollingPolicy: |
479480
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
480481
<!-- daily rollover -->
@@ -483,6 +484,7 @@ api:
483484
<maxHistory>30</maxHistory>
484485
</rollingPolicy>
485486
encoderPattern: "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n%n"
487+
contextualLoggingEncoderPattern: "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} %X{orgId} %X{envId} - %msg%n%n"
486488
graviteeLevel: DEBUG
487489
jettyLevel: INFO
488490
restartPolicy: OnFailure

0 commit comments

Comments
 (0)