Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 77a3635

Browse files
author
Green Learner
committed
adding log filters and externalizing log file
1 parent 1bfb021 commit 77a3635

File tree

3 files changed

+76
-6
lines changed

3 files changed

+76
-6
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.greenlearner.product.config;
2+
3+
import com.greenlearner.product.filters.RequestResponseLoggers;
4+
import org.springframework.boot.web.servlet.FilterRegistrationBean;
5+
import org.springframework.context.annotation.Bean;
6+
import org.springframework.context.annotation.Configuration;
7+
8+
/**
9+
* @author - GreenLearner(https://www.youtube.com/c/greenlearner)
10+
*/
11+
@Configuration
12+
public class FiltersConfig {
13+
14+
15+
@Bean
16+
FilterRegistrationBean<RequestResponseLoggers> createLoggers(RequestResponseLoggers requestResponseLoggers){
17+
FilterRegistrationBean<RequestResponseLoggers> registrationBean = new FilterRegistrationBean<>();
18+
19+
registrationBean.setFilter(requestResponseLoggers);
20+
registrationBean.addUrlPatterns("/v1/addProduct","/v1/product/*", "/v1/productList/*");
21+
22+
return registrationBean;
23+
}
24+
}

‎Online-Shopping-Portal/product/src/main/java/com/greenlearner/product/filters/RequestResponseLoggers.java‎

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.greenlearner.product.filters;
22

3+
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.greenlearner.product.dto.Product;
35
import lombok.extern.slf4j.Slf4j;
46
import org.apache.commons.io.IOUtils;
57
import org.apache.commons.io.output.TeeOutputStream;
6-
import org.springframework.core.annotation.Order;
8+
import org.springframework.beans.factory.annotation.Autowired;
79
import org.springframework.stereotype.Component;
810

911
import javax.servlet.*;
@@ -12,28 +14,60 @@
1214
import javax.servlet.http.HttpServletResponse;
1315
import javax.servlet.http.HttpServletResponseWrapper;
1416
import java.io.*;
17+
import java.util.LinkedHashMap;
18+
import java.util.List;
1519

1620
/**
1721
* @author - GreenLearner(https://www.youtube.com/c/greenlearner)
1822
*/
1923
@Component
2024
@Slf4j
21-
@Order(1)
25+
//@Order(1)
2226
public class RequestResponseLoggers implements Filter {
27+
28+
@Autowired
29+
private ObjectMapper objectMapper;
30+
2331
@Override
2432
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
2533

34+
//password
35+
//ssn, pan, aadhar
36+
//personal
37+
38+
2639
MyCustomHttpRequestWrapper requestWrapper = new MyCustomHttpRequestWrapper((HttpServletRequest) request);
27-
log.info("Requeust URI: {}", requestWrapper.getRequestURI());
40+
41+
String uri = requestWrapper.getRequestURI();
42+
log.info("Requeust URI: {}", uri);
43+
2844
log.info("Requeust Method: {}", requestWrapper.getMethod());
29-
log.info("Requeust Body: {}", new String(requestWrapper.getByteArray()).replaceAll("\n", " "));
45+
String requestData = new String(requestWrapper.getByteArray()).replaceAll("\n", " ");
46+
47+
if("/v1/addProduct".equalsIgnoreCase(uri)){
48+
Product product = objectMapper.readValue(requestData, Product.class);
3049

31-
MyCustomHttpResponseWrapper responseWrapper = new MyCustomHttpResponseWrapper((HttpServletResponse)response);
50+
product.setCurrency("****");
51+
52+
requestData = objectMapper.writeValueAsString(product);
53+
}
54+
55+
log.info("Requeust Body: {}", requestData);
56+
57+
MyCustomHttpResponseWrapper responseWrapper = new MyCustomHttpResponseWrapper((HttpServletResponse) response);
3258

3359
chain.doFilter(requestWrapper, responseWrapper);
3460

61+
String responseResult = new String(responseWrapper.getBaos().toByteArray());
62+
if("/v1/addProduct".equalsIgnoreCase(uri)){
63+
Product product = objectMapper.readValue(responseResult, Product.class);
64+
65+
product.setCurrency("****");
66+
67+
responseResult = objectMapper.writeValueAsString(product);
68+
}
3569
log.info("Response status - {}", responseWrapper.getStatus());
36-
log.info("Response Body - {}", newString(responseWrapper.getBaos().toByteArray()));
70+
log.info("Response Body - {}", responseResult);
3771
}
3872

3973

‎Online-Shopping-Portal/product/src/main/resources/application.yaml‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,18 @@ spring:
1212
profiles:
1313
active: local
1414

15+
logging:
16+
file:
17+
name: d:\logs\product.log
18+
# path: d:\logs #spring.log
19+
logback:
20+
rollingpolicy:
21+
max-file-size: 50KB
22+
level:
23+
root: TRACE
24+
25+
26+
1527
product:
1628
currencies:
1729
- INR

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /