【问题标题】:Logging And Easily Viewing Large Amounts Of Session Data In Java在 Java 中记录并轻松查看大量会话数据
【发布时间】:2010-07-01 21:24:42
【问题描述】:

我需要为我的 java web 应用程序设置一个日志系统,它不仅可以记录通常的内容(错误消息、错误级别等),还可以记录其他信息,例如会话 ID。当然,我想我可以将会话 ID 放在错误消息中,但问题是我最终会为许多不同的用户记录大量数据,并且我需要最终拥有一个可以查看日志的系统并根据会话 ID 对日志进行排序。

我一直在研究 log4j 与电锯的结合,我想我可以extend log4j to add additional attributes 这很棒,但是我如何在电锯中查看这些自定义属性?

当然我不是第一个遇到这个问题的人,除了 log4j 和电锯之外,我还有什么可以使用的吗?

【问题讨论】:

    标签: java session sorting log4j logging


    【解决方案1】:

    我不知道电锯,但记录额外的跨领域信息,例如会话 ID、用户名、请求 ip,...通常是通过 nested diagnostic context 完成的。

    【讨论】:

    • 好的,如何创建或获取 NDC?我假设我应该使用 LoggingEvent.getNDC(),但是我如何获得日志事件?我只有一个记录器、一个附加程序和一个布局对象。
    • 阅读我链接的 javadoc。请注意,操作 NDC 的操作是静态的,您无需获取类 NDC 的实例即可使用 NDC。另请注意,可以将 PatternLayout 配置为打印 NDC 的当前内容。
    • 啊哈哈。谢谢你,愚蠢的我,由于某种原因,我的大脑被阻塞了,一直认为那些是实例方法。
    【解决方案2】:

    免责声明:我是 Chainsaw 的提交者之一...

    Chainsaw 将在其自己的列中显示 NDC 值,并将任何 MDC 条目显示为自己的列。

    许多新功能将在即将发布的版本中推出(即将发布),这些功能可以轻松过滤、着色、搜索和排序......或者,通过 svn 拉下 Chainsaw + log4j 同伴并使用 maven 构建......

    一个非常方便的功能:能够将 cmets 添加到单个事件中,从 Chainsaw 中保存事件并将生成的文件通过电子邮件发送给其他人,他们可以在表格中看到您的 cmets。

    这是一个屏幕视频:http://people.apache.org/~sdeboy/chainsawdemo.avi

    【讨论】:

      【解决方案3】:

      您是在记录还是审核您的用户?

      审核涉及审查用户操作,作为正常操作的一部分,属于数据库。

      日志记录更多用于中断/修复。

      【讨论】:

        【解决方案4】:

        最好的办法是将数据插入数据库。这样,您可以在会话 ID 上建立索引,并使用直接 SQL 快速检索和排序所有信息,或者创建一个轻量级 Web 应用程序,用于查看数据库中的数据,给定会话 ID 或其他搜索条件。

        如果您想要一个可以将现有日志文件输入的快速解决方案 - 试试 splunk

        HTH

        【讨论】:

          猜你喜欢
          • 2018-05-06
          • 1970-01-01
          • 1970-01-01
          • 2016-01-07
          • 1970-01-01
          • 2021-07-10
          • 2019-05-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多