54. Tracing
将为所有 HTTP 请求自动启用跟踪。您可以查看trace
端点并获取有关最近 100 个请求的基本信息:
[{
"timestamp": 1394343677415,
"info": {
"method": "GET",
"path": "/trace",
"headers": {
"request": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Connection": "keep-alive",
"Accept-Encoding": "gzip, deflate",
"User-Agent": "Mozilla/5.0 Gecko/Firefox",
"Accept-Language": "en-US,en;q=0.5",
"Cookie": "_ga=GA1.1.827067509.1390890128; ..."
"Authorization": "Basic ...",
"Host": "localhost:8080"
},
"response": {
"Strict-Transport-Security": "max-age=31536000 ; includeSubDomains",
"X-Application-Context": "application:8080",
"Content-Type": "application/json;charset=UTF-8",
"status": "200"
}
}
}
},{
"timestamp": 1394343684465,
...
}]
默认情况下,跟踪中包括以下内容:
Name | Description |
---|---|
Request Headers | 请求的 Headers。 |
Response Headers | Headers 来自回应。 |
Cookies | 来自请求 Headers 的Cookie 和来自响应 Headers 的Set-Cookie 。 |
Errors | 错误属性(如果有)。 |
Time Taken | 服务请求所花费的时间(以毫秒为单位)。 |
54.1 自定义跟踪
如果您需要跟踪其他事件,可以将TraceRepository注入到 Spring bean 中。 add
方法接受一个Map
结构,该结构将转换为 JSON 并记录下来。
默认情况下,将使用InMemoryTraceRepository
来存储最近的 100 个事件。如果需要扩展容量,则可以定义自己的InMemoryTraceRepository
bean 实例。如果需要,您还可以创建自己的替代TraceRepository
实现。