Logging
This guide assumes familiarity with:
To enable default query logging, just pass { logger: true }
to the waddler
initialization function:
import { waddler } from 'waddler/...'; // driver specific
const db = waddler({ logger: true });
You can also create a custom logger:
import { Logger } from 'waddler';
import { waddler } from 'waddler/...'; // driver specific
class MyLogger implements Logger {
logQuery(query: string, params: unknown[]): void {
console.log({ query, params });
}
}
const db = waddler({ logger: new MyLogger() });
better-sqlite3
libsql
d1
bun-sqlite
durable-sqlite
// metadata returns only for `run` queries
type metadataType = {
changes: number;
lastInsertRowid: number | bigint;
}
// metadata example
{ changes: 0, lastInsertRowid: 0 }
// metadata type
type metadataType = {
columns: Array<string>;
columnTypes: Array<string>;
rowsAffected: number;
lastInsertRowid: bigint | undefined;
}
// metadata example
{
columnTypes: [ '' ],
columns: [ '?' ],
lastInsertRowid: undefined,
rowsAffected: 0
}
// metadata returns only for `run` queries and `all` queries with `rowMode` equal to `object`
type metadataType = {
success: true;
meta: {
duration: number;
size_after: number;
rows_read: number;
rows_written: number;
last_row_id: number;
changed_db: boolean;
changes: number;
served_by_region?: string;
served_by_primary?: boolean;
timings?: {
sql_duration_ms: number;
};
} & Record<string, unknown>;
error?: never;
}
// metadata example
{
success: true,
meta: {
duration: 0.03895799999997962,
last_row_id: 0,
changes: 0,
served_by: 'miniflare.db',
internal_stats: null
}
}
// metadata returns only for `run` queries
type metadataType = {
changes: number;
lastInsertRowid: number | bigint;
}
// metadata example
{ changes: 0, lastInsertRowid: 0 }
// metadata type
type metadataType = {
columnNames: string[];
get rowsRead(): number;
get rowsWritten(): number;
}
// metadata example
{ columnNames: [ '?' ], rowsRead: 0, rowsWritten: 0 }