gpt4 book ai didi

php - 使用 log4php 跟踪 php 上的用户事件

转载 作者:行者123 更新时间:2023-11-29 14:06:16 25 4
gpt4 key购买 nike

enter image description here

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

最佳答案

您的表无法存储此信息。我看到登录和注销时间戳列以及带有“事件”的内容,但您将生成的数据将不仅仅是每个登录 session 的一项事件。

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

除非您想编写自己的附加程序,否则 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 来进行审计日志记录。它是一个功能强大的工具,具有多种功能,但我发现在尝试使其完美适合您当前的用例时存在许多问题。如果您自己进行审核日志记录,这对您来说似乎更容易,因为您可以将所需的所有信息包含在数据库中。

关于php - 使用 log4php 跟踪 php 上的用户事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14304680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com