【发布时间】:2009-10-22 13:50:56
【问题描述】:
我需要记录来自许多使用 SQLite 的应用程序的查询,不仅包括插入/更新/删除,还包括选择和其他查询。在这种情况下,将日志记录引入应用程序在实践中并不是一个可行的解决方案。那么如何在 SQLite 本身中启用查询日志记录呢?
【问题讨论】:
-
只是添加更多信息,如果您在应用程序中使用 SQLite,您可能应该为整个应用程序使用不同的日志记录系统,而不是要求内置 SQLite 函数.
我需要记录来自许多使用 SQLite 的应用程序的查询,不仅包括插入/更新/删除,还包括选择和其他查询。在这种情况下,将日志记录引入应用程序在实践中并不是一个可行的解决方案。那么如何在 SQLite 本身中启用查询日志记录呢?
【问题讨论】:
看看 sqlite Trace API。你必须自己实现回调。
void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);
sqlite3_trace()注册的回调函数在sqlite3_step()运行SQL语句的不同时间被调用。当语句第一次开始执行时,回调返回 SQL 语句文本的 UTF-8 呈现。进入每个触发的子程序时会发生额外的回调。
【讨论】: