【问题标题】:Tracking user activity on php using log4php使用 log4php 跟踪用户在 php 上的活动
【发布时间】:2013-01-13 14:59:03
【问题描述】:

我的系统已经有了一个简单的审计跟踪。但是我的教授想添加用户为审计跟踪所做的事情。我什至无法想象该怎么做。我发现了 log4php http://logging.apache.org/log4php/index.html 我了解到,每次访问该站点时都会生成一个文本文件。但是如何将它合并到我已经在 mysql 中的表中并填写我页面中的活动列?

【问题讨论】:

    标签: php mysql log4php


    【解决方案1】:

    您的表无法存储此信息。我看到登录和注销时间戳的列,以及带有“活动”的内容,但您将生成的数据将是每个登录会话的多个活动。

    此外,审计跟踪通常不会存储在可以轻松更改的系统中。

    除非您想编写自己的附加程序,否则 Log4PHP 中包含的附加程序在此处描述:https://logging.apache.org/log4php/docs/appenders/pdo.html

    它详细介绍了如何定义存储表:

    timestamp DATETIME
    logger VARCHAR
    level VARCHAR
    message VARCHAR
    thread VARCHAR
    file VARCHAR
    line VARCHAR
    

    每当您觉得您的代码应该在审核日志中生成一个条目时,您可能会获取审核记录器对象并向其发送消息:

    Logger::get('audit')->info('Stuff happened');
    

    这将创建一条日志消息,其中包含数据库所需的所有信息。此外,您可以使用 MDC 功能:您可以设置可能添加到日志消息中的永久信息。 MDC 是“映射诊断上下文”的缩写,可以将“当前用户”等值添加到消息中。

    但这只有在您配置包含此 MDC 值的正确日志消息格式时才会发生。配置可能通过 LoggerLayoutPattern 进行,详情请参阅https://logging.apache.org/log4php/docs/layouts/pattern.html

    底线:如果您到目前为止还没有将 Log4PHP 用于通用应用程序日志记录,我宁愿不添加用于审计日志记录的 Log4PHP。它是一个功能强大的工具,具有很多功能,但我发现在尝试使其完美适合您当前的用例时存在许多问题。如果您自己进行审计日志记录,对您来说似乎更容易,因为您可以在数据库中包含您需要的所有信息。

    【讨论】:

    • 我同意。这太复杂了。我会自己做审计跟踪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 2013-10-23
    相关资源
    最近更新 更多