Files
SnowLuma/.pnpm-store/v11/files/e0/0db3a3d1d30d6f6052e5d855b69388f0a11f84b8f8a10929bb74a7699fe0b7fec6e0b4304e13a71e096c62afbf691b65a9e03a8f40f84639a49a25e0cc9adb
T
TanTan 2a69b23b47
Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

80 lines
1.9 KiB
Plaintext

import { default as Level } from './Level';
import { default as Logger } from './Logger';
/**
* Log level name (日志级别名称)
*/
export type TLevel = keyof typeof Level;
/**
* Log level (日志级别)
*/
export type LogLevel = Level | TLevel;
/**
* Log factory configuration (日志工厂配置)
*/
export interface Config {
level?: LogLevel;
appenders?: IAppender[];
LoggerClass?: typeof Logger;
}
/**
* Logger options (日志选项)
*/
export interface LogOptions {
level?: LogLevel;
appenders?: IAppender[];
}
/**
* Log event (日志事件)
*/
export interface LogEvent {
level: LogLevel;
levelName: TLevel;
message: any[];
timestamp: Date;
loggerName: string;
context: Record<string, any>;
}
/**
* Pattern converter (日志记录器模式转换器)
*/
export type TPatternConverter = (event: LogEvent) => string;
/**
* Create converter function (创建转换器函数)
*/
export type TCreateConverter = (specifier: string, alignLeft?: boolean, minWidth?: number, maxLength?: number, format?: string) => TPatternConverter | null | undefined;
/**
* Layout interface (日志布局接口)
*/
export interface ILayout {
format(event: LogEvent): string;
}
/**
* Appender interface (日志记录器接口)
*/
export interface IAppender {
name: string;
setup(logger: ILogger): void;
write(event: LogEvent): void;
close(): Promise<void>;
}
/**
* Logger interface (日志接口)
*/
export interface ILogger {
name: string;
appenders: Map<string, IAppender>;
set level(l: LogLevel);
get level(): Level;
get levelName(): TLevel;
addContext(key: string, value: any): void;
removeContext(key: string): void;
clearContext(): void;
dispose(): Promise<any[]>;
trace(...args: any[]): void;
debug(...args: any[]): void;
info(...args: any[]): void;
warn(...args: any[]): void;
error(...args: any[]): void;
fatal(...args: any[]): void;
}