dromara / dromara/TLog

请问spirngboot中自定义的容器怎么获取TraceId?

Open
#17 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
601
Forks
117
PR merge metrics
No merged PRs in 30d

Description

```java
package com.elite.common.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.OncePerRequestFilter;
import org.springframework.web.util.ContentCachingRequestWrapper;
import org.springframework.web.util.ContentCachingResponseWrapper;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
* 记录完整请求响应日志
*
*/
@Slf4j
@Configuration
public class WebConfig {

@Bean
public OncePerRequestFilter contentCachingRequestFilter() {
return new OncePerRequestFilter() {

@Override
protected void doFilterInternal(final HttpServletRequest request, final HttpServletResponse response, final FilterChain filterChain) throws ServletException, IOException {
ContentCachingRequestWrapper wrappedRequest = new ContentCachingRequestWrapper(request);
ContentCachingResponseWrapper wrappedResponse = new ContentCachingResponseWrapper(response);
filterChain.doFilter(wrappedRequest, wrappedResponse);
log.info("http request:{}", new String(wrappedRequest.getContentAsByteArray()));
log.info("http response:{}", new String(wrappedResponse.getContentAsByteArray()));
wrappedResponse.copyBodyToResponse();
}
};
}

}
```

如上,我这里打印了http请求和响应日志,但是并没有traceId

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.