On this page
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实现。