SQLite的SQL查询日志记录?

Eem*_*ola 26 sql sqlite logging

我需要记录查询,不仅是插入/更新/删除,还要从使用SQLite的许多应用程序中选择和其他查询.在这种情况下,向应用程序引入日志记录在实践中不是可行的解决方案.那么如何在SQLite本身启用查询日志记录呢?

pie*_*fou 11

看一下sqlite Trace API.你必须自己实现回调.

void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);
Run Code Online (Sandbox Code Playgroud)

注册的回调函数sqlite3_trace()在运行SQL语句的不同时间调用sqlite3_step().当语句首次开始执行时,回调将返回SQL语句文本的UTF-8呈现.输入每个触发的子程序时会发生其他回调.

  • 只想放入一小段基本日志:void trace_callback(void*udp,const char*sql){printf("{SQL} [%s] \n",sql); sqlite3_trace(g_dbConf,trace_callback,NULL); (8认同)