将日志消息存储在数据库表而不是文件中是好还是坏?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将日志消息存储在数据库表而不是文件中是好还是坏?相关的知识,希望对你有一定的参考价值。

我在谈论人类可读的文本记录,比如来自Web应用程序的错误消息。

人们通常将这些存储在数据库中吗?使用数据库表而不是文件有什么好处吗?或者如果没有,为什么它特别是一个坏主意?

答案

Database

好处:

  • 更容易搜索日志 通过例如日期进行聪明的查询,分组和限制 检索特定类型,日志级别或包含某些模式的日志消息 在寻找特定的东西时过滤掉不必要的噪音
  • 如果您正在创建某种用户界面,则可以更好地管理

一些缺点:

  • 根据您的应用程序,使用可能不太有用的内容污染您的数据库
  • 可以帮助更快的数据库增长,这在某些情况下可能会令人讨厌
  • 您需要访问数据库(可能需要纸质工作或只需要时间),或者在顶部编写UI

Text files

主要优点

  • 非常容易,重量轻,易于实施
  • 不再需要时易于清理;不再浪费磁盘空间
  • 使用Splunk或Logstash等工具轻松扫描(从而为您提供良好的用户界面)

缺点

  • 难以浏览和查询(取决于您的日志记录语句,文件结构等)

记录到数据库与记录到文件没有任何内在的正确或错误;这一切都取决于你的需求。考虑你的需求,然后决定。在调试时记录到数据库非常方便,但从长远来看,可能需要更多的人,您的团队或您的应用程序。

另一答案

我希望这个链接能给你一个更好的主意 - What's more efficient - storing logs in sql database or files?

如果您需要其他人需要在Web界面中读取日志或者您需要能够搜索日志,请记录到db

以上是关于将日志消息存储在数据库表而不是文件中是好还是坏?的主要内容,如果未能解决你的问题,请参考以下文章

不使用约束是好的做法,或者至少不是坏做法

从 C 函数返回指针是好还是坏设计? [关闭]

以太坊2019年硬分叉时间确定 金猫kinmall:对市场是好还是坏?

日志文件仅用于日志还是用于存储消息?

退出带有空返回语句的函数是好还是坏?

如何确保将 Tkinter 表单中的值输入 MySQL 表而不是收到错误消息?