I need to log queries, not only inserts/updates/deletes but also selects and other queries, from a number of applications that use SQLite. Introducing logging to the applications would in this case not be a feasible solution in practice. So how can I enable query logging in SQLite itself?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Take a look at the sqlite Trace API. You have to implement the callback yourself.
void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);
The callback function registered by
sqlite3_trace()
is invoked at various times when an SQL statement is being run bysqlite3_step()
. The callback returns a UTF-8 rendering of the SQL statement text as the statement first begins executing. Additional callbacks occur as each triggered subprogram is entered.