This commit is contained in:
AdisakKanthawilang 2024-07-25 17:06:42 +07:00
parent 4b34fc20b8
commit 1c9cb7ea78
11 changed files with 741 additions and 122 deletions

View file

@ -1,6 +1,28 @@
import "dotenv/config";
import "reflect-metadata";
import { DataSource } from "typeorm";
import { DataSource, LogLevel, LogMessage } from "typeorm";
import { Logger } from "typeorm";
import { QueryRunner } from "typeorm/browser";
import { RequestWithUser } from "../middlewares/user";
export class MyCustomLogger implements Logger {
log(level: "log" | "info" | "warn", message: any, queryRunner?: QueryRunner) {}
logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner): void {
const req = queryRunner?.data as RequestWithUser | undefined;
const logData = req?.app?.locals.logData?.sequence.at(-1);
if (logData && !logData.query) logData.query = [];
if (logData) logData.query.push(
"Query: " + query + (parameters ? (" - Parameters:" + JSON.stringify(parameters)) : '')
);
}
logMigration(message: string, queryRunner?: QueryRunner) {}
logQueryError(error: string | Error, query: string, parameters?: any[], queryRunner?: QueryRunner) {}
logQuerySlow(time: number, query: string, parameters?: any[], queryRunner?: QueryRunner) {}
logSchemaBuild(message: string, queryRunner?: QueryRunner) {}
}
export const AppDataSource = new DataSource({
type: "mysql",
@ -11,7 +33,7 @@ export const AppDataSource = new DataSource({
password: process.env.DB_PASSWORD,
connectorPackage: "mysql2",
synchronize: false,
logging: true,
logging: ["query", "error"],
entities:
process.env.NODE_ENV !== "production"
? ["src/entities/**/*.ts"]
@ -21,7 +43,6 @@ export const AppDataSource = new DataSource({
? ["src/migration/**/*.ts"]
: ["dist/migration/**/*{.ts,.js}"],
subscribers: [],
logger: new MyCustomLogger(),
});
// console.log(AppDataSource);
// export default database;