1

设置

在处理一些相当复杂的过程时,我已经开始_debug通过存储的日志记录过程将调试信息记录到表中:P_Log('message'),它只是在表中调用一个简单的INSERT查询_debug

复杂的过程包含事务,如果遇到错误就会回滚。问题是在事务过程中记录的任何调试信息也会被回滚。这当然会适得其反,因为您希望能够在过程失败时准确地查看调试日志。


问题

有什么方法可以在_debug不回滚插入的情况下插入?日志实际上只用于开发,我只会写它,所以我不在乎它是否会违反事务的使用方式。

只是出于好奇,这通常是如何处理的?似乎能够从内部事务写入任意日志信息,检查变量状态等,无论所述事务是否回滚,对于调试错误绝对至关重要。这里的最佳做法是什么?


可能的替代方案

  1. 将日志存储在变量中,并仅在过程结束时写入它们。
    • 问题是我希望能够插入任意数量的调试条目。创建一个文本变量和 parcing 稍后会起作用,但看起来很hacky。
  2. 在mysql中使用一些内置的日志
    • 如果这意味着我可以随意向其写入任意文本,我实际上会很好,但到目前为止我还没有找到这样的东西。
4

1 回答 1

2

最简单的方法是将您的日志表更改为 MyISAM。

它不支持事务并将完全忽略它们。当您只插入并从中选择时,MyISAM 也会更快一些。

我知道的唯一其他解决方案是为日志创建单独的连接。

于 2013-09-12T14:13:14.093 回答