哪种类型的事件最好存储在DB中用于日志?

时间:2011-10-30 14:40:35

标签: mysql database logging administration

我正在构建用户注册,登录,切换到其他用户页面,阅读文章,注销等的网站。

目前我认为出于安全原因必须记录所有这些事件,因此管理员将有大量数据可供操作。这个apporach是否正确?

每个事件将在单独的字段中提供用户ID,IP,+日期和时间。

我对这个主题的一般方法很感兴趣。也许还有更多的事要做,或者做一些不同的方法。一些提示和技巧可能有助于建立更安全和更好的项目...

小例子。

1.User按下注册按钮

2.User验证每个输入字段

3.用户按“注册”发送注册表

4.Server说它没问题或者有错误。

5.如果用户已注册。

6.用户仍在注册表中查看错误。

7.如果他已注册激活电子邮件发送给用户....

8.用户收到有关激活链接的信件被发送给他的消息。

那么我必须在这个例子中记录哪些事件?

1 个答案:

答案 0 :(得分:1)

一个好的和常见的方法是每个事件都有它的水平。

在配置中设置系统正在处理的当前级别。将记录级别低于(或高于)当前配置级别的所有事件。

当然是记录用户活动。

许多高级系统为代码实现了一个记录器,它与用户活动分开。它通常会登录到一个文件(你也可以登录数据库,但这应该谨慎,因为它可能很重)。您在记录代码时将系统当前级别设置为DEBUG / INFO / USER等,几乎在您调用记录器的每行代码之后(有些将被忽略,具体取决于级别)。这样,当您想要调试并发现问题时,可以将日志设置为DEBUG并查看代码如何逐行运行。在例行的基础上,您可以在查看USER / INFO消息时发现问题。

编辑:

您可以记录用户活动。您可以记录系统行为。您可以记录数据,以便更好地了解用户(会员/访客)如何浏览您的网站。他们点击了什么链接,他们正在执行什么常见操作,他们在每个页面上花了多少时间,他们正在做多少滚动,鼠标移动,文本突出显示等等。您可以从中学习如何改善用户界面以改善用户经验。您可以在UI或系统中检测问题。问题是 - 您要从将要记录的数据中实现什么目标?它只是调试您的系统,查找黑客企图或了解用户如何使用您的网站?