哪种方法更适合日志记录 - 文件或数据库?

Vai*_*hav 7 logging multithreading

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

它适用于多线程批处理中的这些记录.每个这样的批处理都写入相同的日志文件,以便为每条记录创建工作流程跟踪.潜在地,我们可能在一天内完成接近一百万次的日志写入.

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

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

是否可以对这两种方法进行任何优化?

谢谢.

Zom*_*eep 6

有趣的问题,如果您决定登录数据库,您在哪里记录数据库连接错误?

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


Rob*_*per 2

我在这里支持其他答案,取决于您对数据的处理方式

我们这里有两种情况:

  1. 大部分日志记录都记录在数据库中,因为我们构建的产品的管理员用户需要能够在他们漂亮的小应用程序中查看它们,并提供所有附加功能。

  2. 我们将所有诊断和调试信息记录到文件中。我们不需要真正“美化”它,而且说实话,我们甚至不经常需要它,所以我们只是记录和归档大部分内容。

我想说,如果用户正在用它做任何事情,然后登录到数据库,如果它适合你,那么一个文件可能就足够了。