如何在Java web app中记录消息,并在树中按会话、请求查看日志?

如何在Java web app中记录消息,并在树中按会话、请求查看日志?,java,logging,web-applications,log-analysis,Java,Logging,Web Applications,Log Analysis,目前,在我的web应用程序日志中,我有一个大的文本文件,其中充满了消息。它们很难用于调试和分析。我想象着下面的情况,我想知道,它是否已经存在,或者我是否需要构建它 我希望日志消息与当前请求和会话相关联,以便可以在UI中以可折叠树的形式查看日志。在摘要级别,我可以按用户/会话查看请求,并在这些级别下查看请求以及在请求中花费的总时间。从那里,我可以深入到一个请求,并在更深层次上查看日志消息。包含警告或错误的请求将突出显示或使用筛选器进行选择 我还希望该系统是可扩展的,而不是一个黑盒子。我希望将异步任

目前,在我的web应用程序日志中,我有一个大的文本文件,其中充满了消息。它们很难用于调试和分析。我想象着下面的情况,我想知道,它是否已经存在,或者我是否需要构建它

我希望日志消息与当前请求和会话相关联,以便可以在UI中以可折叠树的形式查看日志。在摘要级别,我可以按用户/会话查看请求,并在这些级别下查看请求以及在请求中花费的总时间。从那里,我可以深入到一个请求,并在更深层次上查看日志消息。包含警告或错误的请求将突出显示或使用筛选器进行选择


我还希望该系统是可扩展的,而不是一个黑盒子。我希望将异步任务连接到会话/请求,即使这些事情发生在其他线程中。我想把它和客户端Javascript错误结合起来。这是另一个问题,但重点是我需要一些可扩展的东西。

我使用以下模式:

我的Log4j模式正在使用-%d{ISO8601}%p[%X{REQUEST_ID}][%X{SESSION_ID}][%X{USER}]%类%m%n 在应用程序中,对于每个请求,我都使用方法设置请求ID、会话ID和用户

MDC.put("SESSIONION_ID", sessionId);
MDC.put("REQUEST_ID", requestId);
MDC.put("USER", user);
我已在中定义了此日志模式。您的日志模式定义应如下所示:

type=log4j
pattern=TIMESTAMP LEVEL [PROP(REQUEST_ID)][PROP(SESSION_ID)][PROP(USER)] CLASS MESSAGE
dateFormat=yyyy-MM-dd HH:mm:ss,SSS
name="MyAppLog"
charset=UTF-8
我打开日志,通过它可以轻松地按属性请求ID、会话ID或用户ID筛选日志。它还可以按类、日期、线程等筛选日志。日志可以从

此外,您还可以集成。参见Youtube上的示例:


免责声明:我是OtroLogViewer的作者,我使用以下模式:

我的Log4j模式正在使用-%d{ISO8601}%p[%X{REQUEST_ID}][%X{SESSION_ID}][%X{USER}]%类%m%n 在应用程序中,对于每个请求,我都使用方法设置请求ID、会话ID和用户

MDC.put("SESSIONION_ID", sessionId);
MDC.put("REQUEST_ID", requestId);
MDC.put("USER", user);
我已在中定义了此日志模式。您的日志模式定义应如下所示:

type=log4j
pattern=TIMESTAMP LEVEL [PROP(REQUEST_ID)][PROP(SESSION_ID)][PROP(USER)] CLASS MESSAGE
dateFormat=yyyy-MM-dd HH:mm:ss,SSS
name="MyAppLog"
charset=UTF-8
我打开日志,通过它可以轻松地按属性请求ID、会话ID或用户ID筛选日志。它还可以按类、日期、线程等筛选日志。日志可以从

此外,您还可以集成。参见Youtube上的示例:

免责声明:我是OtrosLogViewer的作者