@lsk4/log
Version:
Yet another logger whitch combines the best features of debug, bunyan, logfmt/logrus, morgan/winston
63 lines (60 loc) • 1.68 kB
TypeScript
import { Color } from '@lsk4/colors';
type LoggerLevelType = 'fatal' | 'error' | 'warn' | 'debug' | 'info' | 'trace' | 'log';
interface ILoggerProps {
prefix?: string;
ns?: string;
name?: string;
level?: LoggerLevelType;
format?: string;
on?: Array<RegExp>;
off?: Array<RegExp>;
}
interface ILoggerMessage {
code?: any;
name?: string | null;
ns?: string | null;
level?: string | number;
time?: string | number | Date;
msg?: string | null;
data?: any;
}
interface ILogger extends ILoggerProps {
trace(...args: any[]): void;
info(...args: any[]): void;
debug(...args: any[]): void;
warn(...args: any[]): void;
error(...args: any[]): void;
fatal(...args: any[]): void;
log(...args: any[]): void;
createChild(...propsArray: ILoggerProps[]): ILogger;
}
type ILoggerMeta = {
ns?: string;
name?: string;
level?: LoggerLevelType;
time?: Date;
method?: string;
host?: string;
reqId?: string | number;
ua?: string;
ip?: string;
url?: string;
status?: string;
duration?: number;
length?: number;
};
declare enum ILoggerInternalMessageFormat {
bunyan = "bunyan",
lsklog = "lsklog",
lsklogweb = "lsklogweb",
logrus = "logrus",
raw = "raw"
}
type ILoggerInternalMessage = {
format: ILoggerInternalMessageFormat | null;
meta: ILoggerMeta;
args: any[];
};
type ThemeKey = LoggerLevelType;
type Theme = Record<ThemeKey, Color[]>;
export { type ILogger, type ILoggerInternalMessage, ILoggerInternalMessageFormat, type ILoggerMessage, type ILoggerMeta, type ILoggerProps, type LoggerLevelType, type Theme, type ThemeKey };