我需要记录来自许多使用sqlite的应用程序的查询,不仅是插入/更新/删除,还包括选择和其他查询。在这种情况下,将日志引入应用程序在实践中不是一个可行的解决方案。那么,如何在sqlite本身中启用查询日志记录?
看看sqlite Trace 应用程序编程接口。您必须自己实现回调。
void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);
由注册的回调函数 sqlite3_trace() 在运行SQL语句时的不同时间调用 sqlite3_step() . 当语句第一次开始执行时,回调返回SQL语句文本的UTF-8呈现。当输入每个触发的子程序时,会发生额外的回调。
sqlite3_trace()
sqlite3_step()