multithreading - 哪个是更好的日志记录方法 - 文件或数据库?

标签 multithreading logging

好的,这是场景。我有一个实用程序可以处理大量记录,并相应地将信息输入到数据库中。

它以多线程批处理方式处理这些记录。每个这样的批处理写入相同的日志文件,以便为每条记录创建工作流跟踪。潜在地,我们可以在一天内进行近 100 万次日志写入。

是否应将此日志写入驻留在另一台服务器上的数据库中?注意事项:

  • 多个线程写入同一个日志文件的明显缺点是日志消息在彼此之间混杂。在数据库中,它们可以按批次 id 分组。
  • 性能 - 哪个会更减慢批处理速度?写入本地文件或将日志数据发送到同一网络上另一台服务器上的数据库。理论上,日志文件更快,但这里有问题吗?

  • 有没有可以对这两种方法进行的优化?

    谢谢。

    最佳答案

    有趣的问题是,您是否应该决定登录到数据库,您在哪里记录数据库连接错误?

    如果我登录到数据库,我总是有一个辅助日志位置(文件、事件日志等),以防出现通信错误。它确实使以后诊断问题变得更容易。

    关于multithreading - 哪个是更好的日志记录方法 - 文件或数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29643/

    相关文章:

    java - 跨多个进程均匀分布数据库记录

    java - 通过 maven a.k.a 发布时禁用 lombok 日志记录作为 maven 驱动的功能翻转

    asp.net - 在 ASP.NET 应用程序上记录 Visual Basic 异常的最佳方法是什么?

    java - log4j 记录器类名通配符

    C# "cached debug log"

    c - 来自一个进程的多个客户端连接

    multithreading - 我们可以在多核CPU中的特定内核上运行linux内核吗?

    Python 多处理限制为每个核心 10%?

    c++ - 如何为 c++11 更正以下生产者消费者代码

    tomcat - 从 Tomcat 的日志中排除某些请求