首页 > 解决方案 > 如何在 Tomcat 控制台日志中记录 sessionId?

问题描述

当在 tomcat 中发生服务器(500)错误时,我们至少得到 2 个日志条目:

  1. 访问日志中的一项
  2. 控制台日志中的一条或多条消息(和/或堆栈跟踪)

为了将控制台中的错误与访问错误相关联,我们希望%S在访问日志中使用我们通过 (server.xml) 获得的会话 ID。

我们如何在控制台中获取会话 ID?

标签: tomcatlogging

解决方案


使用本文档中给出的示例配置激活请求转储过滤器。

正如您希望在控制台日志中看到的(比专用日志更好的主意?),您需要将处理程序更改为:

org.apache.catalina.filters.RequestDumperFilter.handlers = java.util.logging.ConsoleHandler

然后,您应该在 catalina.out 中看到类似的内容,同时给出 JSESSIONDID 和状态码(在您的情况下为 500):

06-Feb-2019 16:59:40.499 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=Set-Cookie=JSESSIONID=E44588D6574AB1489540509E2A710934; Path=/manager; HttpOnly
..
06-Feb-2019 16:59:40.499 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             status=200

你也可以看看这个答案


推荐阅读