51. Tracing

Tracing is automatically enabled for all HTTP requests. You can view the trace endpoint and obtain basic information about the last 100 requests:

[{
    "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,
    ...
    }]

51.1 Custom tracing

If you need to trace additional events you can inject a TraceRepository into your Spring beans. The add method accepts a single Map structure that will be converted to JSON and logged.

By default an InMemoryTraceRepository will be used that stores the last 100 events. You can define your own instance of the InMemoryTraceRepository bean if you need to expand the capacity. You can also create your own alternative TraceRepository implementation if needed.