src/common/middleware/database-logger.middleware.ts
TypeOrmLogger
Properties |
|
Methods |
constructor(name: string)
|
||||||
Parameters :
|
Private Readonly logger |
log | ||||||||||||
log(level: "log" | "info" | "warn", message: string, queryRunner?: QueryRunner)
|
||||||||||||
Parameters :
Returns :
any
|
logMigration | ||||||
logMigration(message: string)
|
||||||
Parameters :
Returns :
void
|
logQuery | ||||||||||||
logQuery(query: string, parameters?: [], queryRunner?: QueryRunner)
|
||||||||||||
Parameters :
Returns :
void
|
logQueryError | |||||||||||||||
logQueryError(error: string, query: string, parameters?: [], queryRunner?: QueryRunner)
|
|||||||||||||||
Parameters :
Returns :
void
|
logQuerySlow | |||||||||||||||
logQuerySlow(time: number, query: string, parameters?: [], queryRunner?: QueryRunner)
|
|||||||||||||||
Parameters :
Returns :
void
|
logSchemaBuild | ||||||
logSchemaBuild(message: string)
|
||||||
Parameters :
Returns :
void
|
Private stringifyParameters | ||||||
stringifyParameters(parameters?: [])
|
||||||
Parameters :
Returns :
any
|
import { Logger as TypeOrmLogger, QueryRunner } from "typeorm";
import { Logger as NestLogger } from "@nestjs/common";
import { clc } from "@nestjs/common/utils/cli-colors.util";
export class DatabaseLoggerMiddleware implements TypeOrmLogger {
private readonly logger;
constructor(name = "SQL") {
this.logger = new NestLogger(name);
}
logQuery(query: string, parameters?: unknown[], queryRunner?: QueryRunner) {
if (queryRunner?.data.isCreatingLogs) {
return;
}
this.logger.log(`${query} -- Parameters: ${this.stringifyParameters(parameters)}`);
}
logQueryError(error: string, query: string, parameters?: unknown[], queryRunner?: QueryRunner) {
if (queryRunner?.data.isCreatingLogs) {
return;
}
this.logger.error(`${query} -- Parameters: ${this.stringifyParameters(parameters)} -- ${error}`);
}
logQuerySlow(time: number, query: string, parameters?: unknown[], queryRunner?: QueryRunner) {
if (queryRunner?.data.isCreatingLogs) {
return;
}
this.logger.error(
`${query} -- Parameters: ${this.stringifyParameters(parameters)} ${clc.red(`+${String(time)}ms`)}`
);
}
logMigration(message: string) {
this.logger.warn(message);
}
logSchemaBuild(message: string) {
this.logger.warn(message);
}
log(level: "log" | "info" | "warn", message: string, queryRunner?: QueryRunner) {
if (queryRunner?.data.isCreatingLogs) {
return;
}
if (level === "log") {
return this.logger.log(message);
}
if (level === "info") {
return this.logger.debug(message);
}
return this.logger.warn(message);
}
private stringifyParameters(parameters?: unknown[]) {
try {
return JSON.stringify(parameters);
} catch {
return "";
}
}
}
export default DatabaseLoggerMiddleware;