服务器登录数据库或日志文件?

2024-06-01 09:09:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在服务器上工作,并开始实现日志记录。但是,我不确定是应该使用数据库进行日志记录,还是只使用纯文本文件。在

我计划为每个请求记录一些基本信息(请求类型、请求的ip地址、会话跟踪)。对于某些请求,将提供扩展信息(关于请求类型的详细信息),如果有任何错误,我也会记录这些信息。在

一方面,将日志放入数据库意味着我可以对记录的数据运行查询。另一方面,我不确定这是否会给数据库带来不必要的压力。当然,我也可以使用数据库和日志文件进行日志记录。人们对正确的伐木有什么看法?在

(如果有区别的话,我在带有MySQL数据库的Apache服务器上使用mod_python。所以我要么使用logging库,要么在数据库中创建一些日志记录表。)


Tags: 文件数据ip服务器信息数据库类型地址
3条回答

首先,使用SLF4J/Logback这样的日志库,它允许您动态地做出这个决定。然后,您可以调整配置文件,并将部分或全部日志消息路由到几个不同的目的地。在

在登录到应用程序数据库之前要非常小心,如果您记录了大量的数据,并且数据量开始变得很高,那么您可以很容易地将其压倒。而且,如果您的应用程序正在接近满负荷运行或处于故障模式,那么日志消息可能无法访问,您将盲目飞行。可能唯一应该发送到应用程序数据库的消息是面向应用程序的高级事件(应用程序数据的一种类型)。在

最好是“记录到文件系统”(对于大型生产环境,这包括记录到冗余日志聚合服务器读取的多播地址)。在

日志文件可以读取到特殊的分析数据库中,在那里可以使用Hadoop对日志数据进行map/reduce分析。在

我们总是将数据记录到一个单独的数据库中。在

这使我们可以在不影响应用程序数据库的情况下进行查询。如果我们意识到需要禁用日志记录或更改日志记录的数量,它也简化了事情。在

但大多数现代日志库支持将日志嵌入到应用程序中,并通过配置文件、数据库等选择目标。在

Logger提供了许多管理日志的方法,尽管默认包没有数据库记录器,但编写这样的事件处理程序并不困难。在

混合文件.log+db最好。 登录数据库信息,您最终可能需要分析,例如平均每天用户数等。 和使用文件.log存储一些调试信息。在

相关问题 更多 >