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

Is it good or bad to store log messages in a database table, rather than a file?

提问人:sgjklseghlesg 提问时间:2/9/2016 更新时间:9/10/2018 访问量:5574

问:

我说的是人类可读的文本记录,例如来自 Web 应用程序的错误消息。

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

数据库 日志记录 Web 语言无关

评论


答:

1赞 Mukesh Keshu 2/9/2016 #1

我希望这个链接能给你一个更好的主意 - 什么更有效 - 将日志存储在 sql 数据库或文件中?

如果您需要其他人需要在 Web 界面中读取日志,或者您需要搜索日志的功能,请改为将日志记录到数据库

4赞 Arve Systad 2/9/2016 #2

数据库

优势:

  • 更轻松地搜索日志
    • 巧妙的查询,例如按日期分组和限制
    • 检索特定类型、日志级别或包含特定模式的日志消息
    • 在寻找特定事物时过滤掉不需要的噪音
  • 如果您正在创建某种用户界面,则更容易以一种好的方式进行管理

一些缺点:

  • 用可能不是很有用的东西污染你的数据库,这取决于你的应用程序
  • 可以帮助加快数据库增长速度,这在某些情况下可能会很烦人
  • 您需要访问数据库(这可能需要文书工作或只是需要时间),或者在上面编写 UI

文本文件

主要优势

  • 非常简单,重量轻,易于实施
  • 不再需要时易于清洁;不再浪费磁盘空间
  • 使用 Splunk 或 Logstash 等工具易于扫描(从而为您提供漂亮的 UI)

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

记录到数据库与记录到文件本身并没有什么对错之分;这完全取决于您的需求。仔细考虑您的需求,然后做出决定。在调试时,记录到数据库非常方便,但从长远来看,它可能需要更多的你、你的团队或你的应用程序。