Logging
This guide assumes familiarity with:
- Quick start with Waddler - read here
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[], metadata?: any): void {
console.log({ query, params, metadata });
}
}
const db = waddler({ logger: new MyLogger() });
metadata
node-postgres
postgres-js
neon-http
neon-serverless
vercel-postgres
xata-http
pglite
bun-sql
// metadata type
type metadataType = {
command: string;
rowCount: number | null;
oid: number;
fields: {
name: string;
tableID: number;
columnID: number;
dataTypeID: number;
dataTypeSize: number;
dataTypeModifier: number;
format: string;
}[];
}
// also can include fields such as:
// '_parsers', '_types', 'RowCtor', 'rowAsArray', '_prebuiltEmptyResultObject';
// metadata example
{
command: 'SELECT',
rowCount: 1,
oid: null,
fields: [
Field {
name: '?column?',
tableID: 0,
columnID: 0,
dataTypeID: 25,
dataTypeSize: -1,
dataTypeModifier: -1,
format: 'text'
}
],
_parsers: [ [Function: noParse] ],
_types: { getTypeParser: [Function: getTypeParser] },
RowCtor: null,
rowAsArray: false,
_prebuiltEmptyResultObject: { '?column?': null }
}