lakutata
Version:
An IoC-based universal application framework.
169 lines (161 loc) • 5.58 kB
TypeScript
import { QueryRunner } from './TypeDef.internal.40.js';
import './TypeDef.internal.30.js';
/**
* Performs logging of the events in TypeORM.
*/
interface Logger {
/**
* Logs query and parameters used in it.
*/
logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner): any;
/**
* Logs query that is failed.
*/
logQueryError(error: string | Error, query: string, parameters?: any[], queryRunner?: QueryRunner): any;
/**
* Logs query that is slow.
*/
logQuerySlow(time: number, query: string, parameters?: any[], queryRunner?: QueryRunner): any;
/**
* Logs events from the schema build process.
*/
logSchemaBuild(message: string, queryRunner?: QueryRunner): any;
/**
* Logs events from the migrations run process.
*/
logMigration(message: string, queryRunner?: QueryRunner): any;
/**
* Perform logging using given logger, or by default to the console.
* Log has its own level and message.
*/
log(level: "log" | "info" | "warn", message: any, queryRunner?: QueryRunner): any;
}
/**
* Log level.
*/
type LogLevel = "query" | "schema" | "error" | "warn" | "info" | "log" | "migration";
/**
* Log message.
*/
type LogMessage = {
type?: LogMessageType;
prefix?: string;
message: string | number;
format?: LogMessageFormat;
parameters?: any[];
additionalInfo?: Record<string, any>;
};
/**
* Log message format.
*/
type LogMessageFormat = "sql";
/**
* Log message type.
*/
type LogMessageType = "log" | "info" | "warn" | "error" | "query" | "query-error" | "query-slow" | "schema-build" | "migration";
/**
* Options for prepare log messages
*/
type PrepareLogMessagesOptions = {
highlightSql: boolean;
formatSql: boolean;
appendParameterAsComment: boolean;
addColonToPrefix: boolean;
};
/**
* Logging options.
*/
type LoggerOptions = boolean | "all" | LogLevel[];
/**
* File logging option.
*/
type FileLoggerOptions = {
/**
* Specify custom path for log file, relative to application root
*/
logPath: string;
};
declare abstract class AbstractLogger implements Logger {
protected options?: LoggerOptions | undefined;
constructor(options?: LoggerOptions | undefined);
/**
* Logs query and parameters used in it.
*/
logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner): void;
/**
* Logs query that is failed.
*/
logQueryError(error: string, query: string, parameters?: any[], queryRunner?: QueryRunner): void;
/**
* Logs query that is slow.
*/
logQuerySlow(time: number, query: string, parameters?: any[], queryRunner?: QueryRunner): void;
/**
* Logs events from the schema build process.
*/
logSchemaBuild(message: string, queryRunner?: QueryRunner): void;
/**
* Logs events from the migration run process.
*/
logMigration(message: string, queryRunner?: QueryRunner): void;
/**
* Perform logging using given logger, or by default to the console.
* Log has its own level and message.
*/
log(level: "log" | "info" | "warn", message: any, queryRunner?: QueryRunner): void;
/**
* Check is logging for level or message type is enabled.
*/
protected isLogEnabledFor(type?: LogLevel | LogMessageType): boolean;
/**
* Write log to specific output.
*/
protected abstract writeLog(level: LogLevel, message: LogMessage | string | number | (LogMessage | string | number)[], queryRunner?: QueryRunner): void;
/**
* Prepare and format log messages
*/
protected prepareLogMessages(logMessage: LogMessage | string | number | (LogMessage | string | number)[], options?: Partial<PrepareLogMessagesOptions>, queryRunner?: QueryRunner): LogMessage[];
/**
* Converts parameters to a string.
* Sometimes parameters can have circular objects and therefor we are handle this case too.
*/
protected stringifyParams(parameters: any[]): string | any[];
}
/**
* Performs logging of the events in TypeORM.
* This version of logger uses console to log events and use syntax highlighting.
*/
declare class AdvancedConsoleLogger extends AbstractLogger {
/**
* Write log to specific output.
*/
protected writeLog(level: LogLevel, logMessage: LogMessage | LogMessage[], queryRunner?: QueryRunner): void;
}
/**
* Performs logging of the events in TypeORM.
* This version of logger uses console to log events and does not use syntax highlighting.
*/
declare class SimpleConsoleLogger extends AbstractLogger {
/**
* Write log to specific output.
*/
protected writeLog(level: LogLevel, logMessage: LogMessage | LogMessage[], queryRunner?: QueryRunner): void;
}
/**
* Performs logging of the events in TypeORM.
* This version of logger logs everything into ormlogs.log file.
*/
declare class FileLogger extends AbstractLogger {
private fileLoggerOptions?;
constructor(options?: LoggerOptions, fileLoggerOptions?: FileLoggerOptions | undefined);
/**
* Write log to specific output.
*/
protected writeLog(level: LogLevel, logMessage: LogMessage | LogMessage[], queryRunner?: QueryRunner): void;
/**
* Writes given strings into the log file.
*/
protected write(strings: string | string[]): void;
}
export { AbstractLogger, AdvancedConsoleLogger, FileLogger, SimpleConsoleLogger };
export type { FileLoggerOptions, LogLevel, LogMessage, LogMessageFormat, LogMessageType, Logger, LoggerOptions, PrepareLogMessagesOptions };