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

Ano*_*eek 27 sqlite logging

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

我熟悉Trace API,但我想知道它是否有任何预定义的功能.

pes*_*ous 12

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

一:

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

二:

不会(以任何方式)推荐以下"生产级"解决方案,但如果您主要是试验和/或调试,那么您可以尝试在每次交易结束之前检查回滚日志. 请参阅此处有关回滚日志的信息:http://www.sqlite.org/tempfiles.html 如何检测"每个事务的结束"将取决于您的代码和/或调试器中的断点.

我必须再次强调:我刚才提到的是完全黑客攻击,即使提到它也感觉很脏.

三:

你可以询问(非常活跃和亲切的)sqlite邮件列表,但他们可能只是重新强调sqlite3_trace.

......其他随机的东西:

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

.explain
Run Code Online (Sandbox Code Playgroud)

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

更多信息我刚发现:

可传递给'sqlite3_config()'的标志之一是SQLITE_CONFIG_LOG. 这是另一种方法(除跟踪API之外),用于定期设置回调并从sqlite库接收状态信息.我认为它主要用于错误日志消息.

  • 也许你可以用"不"开始回答这个问题,在这里查看OP的问题可能有点误导 (18认同)