是否有任何内置函数可以在SQLite中启用查询日志。
我熟悉Trace API,但我想知道它是否有任何预定义函数。
答案 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库接收状态信息。我认为它主要用于错误日志消息。