将sqlite查询打印到logCat

时间:2016-03-25 01:49:02

标签: android sqlite android-sqlite logcat

有没有办法将我的sqlite查询打印到logCat?这是我的查询

db.query(TABLE, projection, selection, selectionArgs, null, null, null)

4 个答案:

答案 0 :(得分:7)

您可以尝试添加

adb shell setprop log.tag.SQLiteLog V
adb shell setprop log.tag.SQLiteStatements V

对于ormlite

adb shell setprop log.tag.StatementExecutor VERBOSE 
adb shell setprop log.tag.BaseMappedStatement VERBOSE 
adb shell setprop log.tag.MappedCreate VERBOSE 
adb shell setprop log.tag.ORMLite DEBUG

您可能需要重新启动Android Studio。

编辑1: 我在Mobile上测试sqllite,配置似乎没用。我不知道原因。 它不起作用,因为源代码说:

public final class SQLiteDebug {
    private static native void nativeGetPagerStats(PagerStats stats);

    /**
     * Controls the printing of informational SQL log messages.
     *
     * Enable using "adb shell setprop log.tag.SQLiteLog VERBOSE".
     */
    public static final boolean DEBUG_SQL_LOG =
            Log.isLoggable("SQLiteLog", Log.VERBOSE);

    /**
     * Controls the printing of SQL statements as they are executed.
     *
     * Enable using "adb shell setprop log.tag.SQLiteStatements VERBOSE".
     */
    public static final boolean DEBUG_SQL_STATEMENTS =
            Log.isLoggable("SQLiteStatements", Log.VERBOSE);

    /**
     * Controls the printing of wall-clock time taken to execute SQL statements
     * as they are executed.
     *
     * Enable using "adb shell setprop log.tag.SQLiteTime VERBOSE".
     */
    public static final boolean DEBUG_SQL_TIME =
            Log.isLoggable("SQLiteTime", Log.VERBOSE);

    /**
     * True to enable database performance testing instrumentation.
     * @hide
     */
    public static final boolean DEBUG_LOG_SLOW_QUERIES = Build.IS_DEBUGGABLE;

    private SQLiteDebug() {
    }
 }

enter image description here enter image description here

答案 1 :(得分:2)

我会读取查询读取的每一行,并使用以下命令从每行打印到logcat的值:

while (!cursor.isAfterLast()) {
    /* Reading values from the current line, putting them into variables */
    ...

    /* Print the log message */
    Log.d("Log message", value1 + " and " + value2 + " and " + ... );

    cursor.moveToNext();
}
cursor.close();

答案 2 :(得分:2)

Android有一个实用程序类来转储游标!如下所示:

while(!cursor.isAfterLast()) {
    Log.e(TAG,DatabaseUtils.dumpCurrentRowToString(cursor));
    cursor.moveToNext();
}

答案 3 :(得分:1)

使用此行显示

Log.d(TAG, DatabaseUtils.dumpCursorToString(cursor));