@appruut/logger
Version:
Logging module for Node.js applications
72 lines (71 loc) • 2.85 kB
TypeScript
/// <reference types="pino" />
declare module "@app::Appruut/Core/Logger" {
import { Level, TimeFn, redactOptions, PrettyOptions, SerializerFn, LevelMapping, Bindings, DestinationStream } from "pino";
export type Formatters = {
level?(labelName: string, labelNumber: number): Object;
bindings?(bindings: Bindings): Object;
log?(log: Object): Object;
};
export type TimestampKeywords = "iso" | "unix" | "epoch";
export type LoggerConfig = {
name: string;
level: Level | "silent" | string;
enabled: boolean;
messageKey?: string;
safe?: boolean;
crlf?: boolean;
timestamp?: TimeFn | TimestampKeywords | boolean;
customLevels?: {
[key: string]: number;
};
formatters?: Formatters;
useOnlyCustomLevels?: boolean;
redact?: string[] | redactOptions;
prettyPrint?: boolean | PrettyOptions;
base?: {
[key: string]: any;
} | null;
serializers?: {
[key: string]: SerializerFn;
};
stream?: DestinationStream;
} & {
[key: string]: any;
};
export interface LoggerContract {
level: string;
levelNumber: number;
levels: LevelMapping;
pinoVersion: string;
log(level: string, message: string, ...values: any[]): void;
log(level: string, mergingObject: any, message: string, ...values: any[]): void;
trace(message: string, ...values: any[]): void;
trace(mergingObject: any, message: string, ...values: any[]): void;
debug(message: string, ...values: any[]): void;
debug(mergingObject: any, message: string, ...values: any[]): void;
info(message: string, ...values: any[]): void;
info(mergingObject: any, message: string, ...values: any[]): void;
warn(message: string, ...values: any[]): void;
warn(mergingObject: any, message: string, ...values: any[]): void;
error(message: string, ...values: any[]): void;
error(mergingObject: any, message: string, ...values: any[]): void;
fatal(message: string, ...values: any[]): void;
fatal(mergingObject: any, message: string, ...values: any[]): void;
isLevelEnabled(level: string): boolean;
bindings(): Bindings;
child(bindings: {
level?: Level | string;
serializers?: {
[key: string]: SerializerFn;
};
[key: string]: any;
}, options?: {
redact?: string[] | redactOptions;
serializers?: {
[key: string]: SerializerFn;
};
}): LoggerContract;
}
const Logger: LoggerContract;
export default Logger;
}