在SQLite 3中启用查询日志记录

时间:2012-06-06 07:48:17

标签: sqlite logging

是否有任何内置函数可以在SQLite中启用查询日志。

我熟悉Trace API,但我想知道它是否有任何预定义函数。

1 个答案:

答案 0 :(得分:11)

有趣的问题。我来到这里很感兴趣,并想知道为什么我自己从未问过这个......

<强>一:

显然有些包装库有类似内置的东西。但是要找到包装库,您可能首先需要识别目标语言。 Perl DBI?蟒蛇? C ++?

<强>两个

(以任何方式)推荐以下“生产级”解决方案,但如果您主要是试验和/或调试,那么您可能会尝试检查回滚期刊在每笔交易结束之前。 See here about the rollback journal: http://www.sqlite.org/tempfiles.html如何检测“每个事务的结束”将取决于您的代码和/或调试器中的断点。

我必须再次强调:我刚刚提到的内容将是一个彻头彻尾的黑客攻击,即使提到它也感觉很脏。

<强>三

你可以询问(非常活跃和亲切)sqlite mailing list,但他们可能只是重新强调sqlite3_trace。

...其他随机的事情:

在一些(几乎没有?)相关的注释中,当你启动'./sqlite3'命令提示会话时,你可以输入:

.explain

为在提示符下执行的每个查询启用有趣且有指导性的详细输出。

我刚发现的更多信息:

One of the flags that can be passed to 'sqlite3_config()' is SQLITE_CONFIG_LOG.这是另一种方法(除跟踪API之外)设置回调并定期从sqlite库接收状态信息。我认为它主要用于错误日志消息。