UNPKG

@hestjs/logger

Version:

HestJS Logger - A powerful logging solution based on Pino

135 lines 4.2 kB
import type { Logger as PinoLogger } from 'pino'; /** * 日志级别枚举 */ export declare enum LogLevel { FATAL = "fatal", ERROR = "error", WARN = "warn", INFO = "info", DEBUG = "debug", TRACE = "trace" } /** * 日志配置接口 */ export interface LoggerConfig { /** 日志级别 */ level?: LogLevel | string; /** 日志名称 */ name?: string; /** 是否启用时间戳 */ timestamp?: boolean; /** 序列化器配置 */ serializers?: Record<string, (value: any) => any>; /** 自定义格式化器 */ formatters?: { level?: (label: string, number: number) => object; bindings?: (bindings: Record<string, any>) => Record<string, any>; log?: (object: Record<string, any>) => Record<string, any>; }; /** 传输配置 */ transport?: any; /** 重新定义配置 */ redact?: string[] | { paths: string[]; censor?: string; }; /** 基础配置 */ base?: Record<string, any> | null; /** 钩子函数 */ hooks?: { logMethod?: (inputArgs: any[], method: any, level: number) => void; }; /** 自定义错误序列化器 */ customLevels?: Record<string, number>; /** 使用仅级别标签 */ useOnlyCustomLevels?: boolean; /** 混合函数 */ mixin?: () => Record<string, any>; /** 消息键 */ messageKey?: string; /** 错误键 */ errorKey?: string; /** 换行符 */ nestedKey?: string; } /** * 日志上下文接口 */ export interface LogContext { /** 请求ID */ requestId?: string; /** 用户ID */ userId?: string; /** 跟踪ID */ traceId?: string; /** 额外的上下文数据 */ [key: string]: any; } /** * HestJS Logger 接口 */ export interface Logger { /** 原始 Pino Logger 实例 */ readonly pino: PinoLogger; /** 设置上下文 */ setContext(context: LogContext): Logger; /** 获取子 Logger */ child(bindings: Record<string, any>): Logger; /** Fatal 级别日志 */ fatal(message: string, error: Error, ...args: any[]): void; fatal(error: Error, message?: string, ...args: any[]): void; fatal(obj: object, message?: string, ...args: any[]): void; fatal(message: string, ...args: any[]): void; /** Error 级别日志 */ error(message: string, error: Error, ...args: any[]): void; error(error: Error, message?: string, ...args: any[]): void; error(obj: object, message?: string, ...args: any[]): void; error(message: string, ...args: any[]): void; /** Warn 级别日志 */ warn(message: string, error: Error, ...args: any[]): void; warn(error: Error, message?: string, ...args: any[]): void; warn(obj: object, message?: string, ...args: any[]): void; warn(message: string, ...args: any[]): void; /** Info 级别日志 */ info(message: string, error: Error, ...args: any[]): void; info(error: Error, message?: string, ...args: any[]): void; info(obj: object, message?: string, ...args: any[]): void; info(message: string, ...args: any[]): void; /** Debug 级别日志 */ debug(message: string, error: Error, ...args: any[]): void; debug(error: Error, message?: string, ...args: any[]): void; debug(obj: object, message?: string, ...args: any[]): void; debug(message: string, ...args: any[]): void; /** Trace 级别日志 */ trace(message: string, error: Error, ...args: any[]): void; trace(error: Error, message?: string, ...args: any[]): void; trace(obj: object, message?: string, ...args: any[]): void; trace(message: string, ...args: any[]): void; /** 刷新日志 */ flush(): void; /** 检查是否启用了指定级别 */ isLevelEnabled(level: LogLevel | string): boolean; } /** * 传输类型 */ export type TransportType = 'console' | 'file' | 'stream' | 'custom'; /** * 传输配置 */ export interface TransportConfig { type: TransportType; target?: string; options?: Record<string, any>; } /** * 环境变量 */ export interface LoggerEnvironment { NODE_ENV?: string; LOG_LEVEL?: string; LOG_NAME?: string; } //# sourceMappingURL=types.d.ts.map