33

Is there any built-in function to enable query log in SQLite.

I'm familiar with Trace API, but I want to know if there is any predefined function for it.

1
  • 1
    The trace API linked to in the question is now deprecated, v2 can be found via this link. Commented Sep 5, 2021 at 13:06

1 Answer 1

17

There is no easy way to do this in SQLite like there is in e.g. MySQL, but there are some options:

One:

Some wrapper-libraries have something like this built-in. But to find a wrapper library you would probably first need to identify the target language. Perl DBI? Python? C++?

Two:

I would not (in any way) recommend the following for a "production-grade" solution, but if you are mainly experimenting and/or debugging, then you might try examining the rollback journal just prior to the end of each transaction. See here about the rollback journal: http://www.sqlite.org/tempfiles.html How you would detect 'the end of each transaction' would be up to your code and/or the breakpoints in your debugger.

I must emphasize again: what I just mentioned above would be a total hack-around, and I feel dirty even having mentioned it.

Three:

You could ask on the (very active and gracious) sqlite mailing list, but they would probably just reemphasize sqlite3_trace.

... other random thing:

On a somewhat (barely?) related note, when you start a './sqlite3' command prompt session, you can type:

.explain

which enables interesting and instructive verbose output for each query executed at the prompt.

More Info I Just Found:

One of the flags that can be passed to 'sqlite3_config()' is SQLITE_CONFIG_LOG. This is another way (in addition to the trace API) to set a callback and receive status information from the sqlite library periodically. I think it is mainly for error log messages.

Sign up to request clarification or add additional context in comments.

1 Comment

Maybe you can start the answer of this question with "no", It might be a bit misleading here looking at the OP's question

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.