2

目前,在我的网络应用程序日志中,我有充满消息的大文本文件。它们很难用于调试和分析。我在想象以下内容,我想知道它是否已经存在,还是我需要构建它?

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

我还希望系统是可扩展的,而不是黑匣子。我想将异步任务连接到会话/请求,即使这些事情发生在其他线程中。我想将此与客户端 Javascript 错误集成。那是另一个问题,但关键是我需要一些可扩展的东西。

4

1 回答 1

4

我正在使用以下模式:

  • 我的 Log4j 模式正在使用MDC - %d{ISO8601} %p [%X{REQUEST_ID}][%X{SESSION_ID}][%X{USER}] %class %m%n
  • 在每个请求的应用程序中,我使用MDC.put()方法来设置 REQUEST_ID、SESSION_ID、USER

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

    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
    
  • 我使用OtrosLogViewer打开日志,它允许我通过属性 REQUEST_ID、SESSIONS_ID 或 USER_ID 轻松过滤。它还可以按类别、日期、线程等过滤日志。可以使用 SFTP、FTP、SMB 从远程服务器打开日志

  • 此外,您可以将OtrosLogViewer 与您的 Intellij集成。请参阅 Youtube 上的示例:https ://www.youtube.com/watch?v=SbOFF56_7-A?hd=1

免责声明:我是 OtrosLogViewer 的作者

于 2014-05-09T08:21:02.567 回答