@hestjs/logger
Version:
HestJS Logger - A powerful logging solution based on Pino
135 lines • 4.2 kB
TypeScript
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