Home / File/ logger.ts — drizzle-orm Source File

logger.ts — drizzle-orm Source File

Architecture documentation for logger.ts, a typescript file in the drizzle-orm codebase. 1 imports, 1 dependents.

File typescript DrizzleORM DatabaseDrivers 1 imports 1 dependents 3 classes

Entity Profile

Dependency Diagram

graph LR
  60da011b_729a_992e_0865_db2038e618a2["logger.ts"]
  27705a9d_afe9_57dd_8c97_e52d8a67d426["entity.ts"]
  60da011b_729a_992e_0865_db2038e618a2 --> 27705a9d_afe9_57dd_8c97_e52d8a67d426
  99737bc3_a631_a054_9291_f966c791930f["utils.ts"]
  99737bc3_a631_a054_9291_f966c791930f --> 60da011b_729a_992e_0865_db2038e618a2
  style 60da011b_729a_992e_0865_db2038e618a2 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { entityKind } from '~/entity.ts';

export interface Logger {
	logQuery(query: string, params: unknown[]): void;
}

export interface LogWriter {
	write(message: string): void;
}

export class ConsoleLogWriter implements LogWriter {
	static readonly [entityKind]: string = 'ConsoleLogWriter';

	write(message: string) {
		console.log(message);
	}
}

export class DefaultLogger implements Logger {
	static readonly [entityKind]: string = 'DefaultLogger';

	readonly writer: LogWriter;

	constructor(config?: { writer: LogWriter }) {
		this.writer = config?.writer ?? new ConsoleLogWriter();
	}

	logQuery(query: string, params: unknown[]): void {
		const stringifiedParams = params.map((p) => {
			try {
				return JSON.stringify(p);
			} catch {
				return String(p);
			}
		});
		const paramsStr = stringifiedParams.length ? ` -- params: [${stringifiedParams.join(', ')}]` : '';
		this.writer.write(`Query: ${query}${paramsStr}`);
	}
}

export class NoopLogger implements Logger {
	static readonly [entityKind]: string = 'NoopLogger';

	logQuery(): void {
		// noop
	}
}

Domain

Subdomains

Dependencies

  • entity.ts

Frequently Asked Questions

What does logger.ts do?
logger.ts is a source file in the drizzle-orm codebase, written in typescript. It belongs to the DrizzleORM domain, DatabaseDrivers subdomain.
What does logger.ts depend on?
logger.ts imports 1 module(s): entity.ts.
What files import logger.ts?
logger.ts is imported by 1 file(s): utils.ts.
Where is logger.ts in the architecture?
logger.ts is located at drizzle-orm/src/logger.ts (domain: DrizzleORM, subdomain: DatabaseDrivers, directory: drizzle-orm/src).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free