CXF RS 漂亮的 HTTP 请求/响应日志记录
Posted
技术标签:
【中文标题】CXF RS 漂亮的 HTTP 请求/响应日志记录【英文标题】:CXF RS pretty HTTP request/response logging 【发布时间】:2022-01-08 04:52:17 【问题描述】:我正在努力设置漂亮的 HTPP 日志记录(用于请求和响应)
我正在使用 CXF REST API,并且正在使用 Spring Boot (https://cxf.apache.org/docs/springboot.html) 初始化 CXF。换句话说,我只是在定义application.properties
server.port=8443
server.servlet.contextPath=/api/
cxf.path=/cxf
cxf.jaxrs.classes-scan=true
cxf.jaxrs.classes-scan-packages=com.mycomp \
,io.swagger.v3.jaxrs2.integration.resources \
,com.fasterxml.jackson
我自动拥有功能 REST API。
我不想使用 XML 配置,但我相信 XML 配置将是(基于 doc https://cxf.apache.org/docs/features.html):
<cxf:bus>
<cxf:features>
<cxf:logging/>
</cxf:features>
</cxf:bus>
如何以编程方式设置漂亮的日志记录?
【问题讨论】:
【参考方案1】:为了获得漂亮的日志记录,您需要执行以下操作:
@Configuration
/**
* Configure CXF http requests for pretty logging
*/
public class CxfLoggingConfig
private static final Logger log = LoggerFactory.getLogger(CxfLoggingConfig.class);
@Autowired
private Bus bus;
@PostConstruct
private void init()
log.debug("Initialising CxfLoggingConfig");
LoggingFeature loggingFeature = new LoggingFeature();
loggingFeature.setPrettyLogging(true);
loggingFeature.setVerbose(true);
//loggingFeature.setLogMultipart(true);
bus.getFeatures().add(loggingFeature);
log.debug("CxfLoggingConfig initialised by ");
【讨论】:
以上是关于CXF RS 漂亮的 HTTP 请求/响应日志记录的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Web API 记录请求响应数据到日志的一个方法