///
///
export interface ILogger {
info(msg: any, ...args: any[]): void;
debug(msg: any, ...args: any[]): void;
error(msg: any, ...args: any[]): void;
warn(msg: any, ...args: any[]): void;
write(msg: any, ...args: any[]): void;
verbose(msg: any, ...args: any[]): void;
}
export type LoggerLevel = 'all' | 'verbose' | 'silly' | 'debug' | 'info' | 'warn' | 'error' | 'none';
export type LoggerFormat = (info: ExtraInfoOptions, logger?: ILogger) => string | Record | Buffer;
export type LoggerInfo = {
level: string;
timestamp: number;
LEVEL: string;
args: any[];
originArgs: any[];
pid: number;
message: string;
ctx?: any;
originError?: Error;
meta?: LogMeta & CustomMeta;
};
export interface TransportUnionOptions {
/**
* console transport options
*/
console?: ConsoleTransportOptions | ITransport | false;
/**
* file transport options
*/
file?: FileTransportOptions | ITransport | false;
/**
* error transport options
*/
error?: FileTransportOptions | ITransport | false;
/**
* json transport options
*/
json?: FileTransportOptions | ITransport | false;
/**
* custom transport options
*/
[key: string]: Record | ITransport | false;
}
export interface LoggerOptions {
/**
* default level for console,file and json logger
*/
level?: LoggerLevel;
/**
* Output format for console and file
*/
format?: LoggerFormat;
/**
* Output format for context logger
*/
contextFormat?: LoggerFormat;
/**
* end of line string for file and error logger
*/
eol?: string;
/**
* Output transport
*/
transports?: TransportUnionOptions;
}
export interface ContextLoggerOptions {
/**
* Output format for context logger
*/
contextFormat?: LoggerFormat;
}
export interface ITransport {
level: LoggerLevel;
setLoggerOptions(options: LoggerOptions): void;
log(level: LoggerLevel | false, meta: LogMeta, ...args: any[]): void;
close(): void;
format(level: LoggerLevel | false, meta: LogMeta, args: any[]): string | Record;
}
export interface BaseTransportOptions {
/**
* default level for console,file and json logger
*/
level?: LoggerLevel;
/**
* end of line string for file and error logger
*/
eol?: string;
/**
* Output format for console and file
*/
format?: LoggerFormat;
/**
* Output format for context logger
*/
contextFormat?: LoggerFormat;
}
export interface LogMeta {
ctx?: any;
format?: LoggerFormat;
contextFormat?: LoggerFormat;
}
export interface ConsoleTransportOptions extends BaseTransportOptions {
autoColors?: boolean;
}
export interface FileTransportOptions extends BaseTransportOptions {
/**
* The directory where file logger will be output
*/
dir?: string;
/**
* Output log name for file logger
*/
fileLogName?: string;
/**
* create symlink for file log name
*/
createSymlink?: boolean;
/**
* Maximum file size for file, error and json logger
* Maximum size of the file after which it will rotate.
* This can be a number of bytes, or units of kb, mb, and gb.
* If using the units, add 'k', 'm', or 'g' as the suffix.
* The units need to directly follow the number.
* default is 200m
*/
maxSize?: string;
/**
* Maximum number of logs to keep.
* This can be a number of files or number of days.
* If using days, add 'd' as the suffix.
* It uses auditFile to keep track of the log files in a json format.
* It won't delete any file not contained in it.
* It can be a number of files or number of days
* default is 31d
*/
maxFiles?: number | string;
/**
* end of line string for file and error logger
*/
eol?: string;
/**
* A boolean to define whether or not to gzip archived log files.
* for file, error and json logger
*/
zippedArchive?: boolean;
/**
* A string representing the moment.js date format to be used for rotating.
* The meta characters used in this string will dictate the frequency of the file rotation.
* For example, if your datePattern is simply 'HH' you will end up with 24 log files that are picked up and appended to every day.
* default: 'YYYY-MM-DD'
* for file, error and json logger
*/
datePattern?: string;
/**
* A directory of the audit file with absolute path.
*/
auditFileDir?: string;
/**
* Enable write to file when buffer size is greater than buffer size, default is false
*/
bufferWrite?: boolean;
/**
* Buffer flush interval for file logger, default is 1000ms
*/
bufferFlushInterval?: number;
/**
* Max buffer length for file logger, default is 1000
*/
bufferMaxLength?: number;
}
export interface StreamOptions {
filename: string;
frequency?: string;
size?: string;
maxFiles?: number | string;
endStream?: boolean;
/**
* File extension to be added at the end of the filename
*/
extension?: string;
createSymlink?: boolean;
dateFormat?: string;
auditFile?: string;
symlinkName?: string;
utc?: boolean;
fileOptions?: any;
/**
* Hash to be used to add to the audit log (md5, sha256)
*/
auditHashType?: string;
}
export interface LoggerFactoryOptions extends LoggerOptions {
}
export interface LegacyLoggerOptions {
/**
* default level for console,file and json logger
*/
level?: LoggerLevel;
/**
* level for console logger
* @deprecated
*/
consoleLevel?: LoggerLevel;
/**
* level for file logger
* @deprecated
*/
fileLevel?: LoggerLevel;
/**
* level for json logger
* @deprecated
*/
jsonLevel?: LoggerLevel;
/**
* Output format for console and file
*/
format?: LoggerFormat;
/**
* Output format for context logger
*/
contextFormat?: LoggerFormat;
/**
* format for json logger
* @deprecated
*/
jsonFormat?: LoggerFormat;
/**
* The directory where file logger will be output
* @deprecated
*/
dir?: string;
/**
* The directory where error logger will be output, if not set, use dir to instead.
* @deprecated
*/
errorDir?: string;
/**
* The directory where json logger will be output, if not set, use dir to instead.
* @deprecated
*/
jsonDir?: string;
/**
* Use alias name for current logger, a proxy name
*/
aliasName?: string;
/**
* Output log name for file logger
* @deprecated
*/
fileLogName?: string;
/**
* Output log name for error logger
* @deprecated
*/
errorLogName?: string;
/**
* Output log name for json logger
* @deprecated
*/
jsonLogName?: string;
/**
* Enable console transport, default is true
* @deprecated
*/
enableConsole?: boolean;
/**
* Enable console transport, default is true
* @deprecated
*/
enableFile?: boolean;
/**
* Enable console transport, default is true
* @deprecated
*/
enableError?: boolean;
/**
* Enable json transport, default is false
* @deprecated
*/
enableJSON?: boolean;
/**
* disable symlink for file, error and json logger
* @deprecated
*/
disableSymlink?: boolean;
/**
* disable symlink for file logger
* @deprecated
*/
disableFileSymlink?: boolean;
/**
* disable symlink for error logger
* @deprecated
*/
disableErrorSymlink?: boolean;
/**
* disable symlink for json logger
* @deprecated
*/
disableJSONSymlink?: boolean;
/**
* Maximum file size for file, error and json logger
* Maximum size of the file after which it will rotate.
* This can be a number of bytes, or units of kb, mb, and gb.
* If using the units, add 'k', 'm', or 'g' as the suffix.
* The units need to directly follow the number.
* default is 200m
* @deprecated
*/
maxSize?: string;
/**
* max file size for file logger
* @deprecated
*/
fileMaxSize?: string;
/**
* max file size for error logger
* @deprecated
*/
errMaxSize?: string;
/**
* max file size for json logger
* @deprecated
*/
jsonMaxSize?: string;
/**
* Maximum number of logs to keep.
* This can be a number of files or number of days.
* If using days, add 'd' as the suffix.
* It uses auditFile to keep track of the log files in a json format.
* It won't delete any file not contained in it.
* It can be a number of files or number of days
* default is 31d
* @deprecated
*/
maxFiles?: number | string;
/**
* max files for file logger
* @deprecated
*/
fileMaxFiles?: number | string;
/**
* max files for error logger
* @deprecated
*/
errMaxFiles?: number | string;
/**
* max files for json logger
* @deprecated
*/
jsonMaxFiles?: number | string;
/**
* end of line string for file and error logger
*/
eol?: string;
/**
* end of line string for json logger
* @deprecated
*/
jsonEol?: string;
/**
* A boolean to define whether or not to gzip archived log files.
* for file, error and json logger
* @deprecated
*/
zippedArchive?: boolean;
/**
* gzip options for file logger
* @deprecated
*/
fileZippedArchive?: boolean;
/**
* gzip options for error logger
* @deprecated
*/
errZippedArchive?: boolean;
/**
* gzip options for json logger
* @deprecated
*/
jsonZippedArchive?: boolean;
/**
* A string representing the moment.js date format to be used for rotating.
* The meta characters used in this string will dictate the frequency of the file rotation.
* For example, if your datePattern is simply 'HH' you will end up with 24 log files that are picked up and appended to every day.
* default: 'YYYY-MM-DD'
* for file, error and json logger
* @deprecated
*/
datePattern?: string;
/**
* date pattern for file logger
* @deprecated
*/
fileDatePattern?: string;
/**
* date pattern for error logger
* @deprecated
*/
errDatePattern?: string;
/**
* date pattern for json logger
* @deprecated
*/
jsonDatePattern?: string;
/**
* A directory of the audit file with absolute path.
* @deprecated
*/
auditFileDir?: string;
/**
* @deprecated use format instead
*/
printFormat?: LoggerFormat;
/**
* @deprecated
*/
defaultMeta?: object;
/**
* @deprecated
*/
defaultLabel?: string | LoggerFormat;
/**
* @deprecated use enableConsole instead
*/
disableConsole?: boolean;
/**
* @deprecated use enableFile instead
*/
disableFile?: boolean;
/**
* @deprecated use enableError instead
*/
disableError?: boolean;
/**
* writeable stream options for file logger
*/
fileOptions?: any;
}
//# sourceMappingURL=interface.d.ts.map