import { default as Level } from './Level'; import { IAppender, ILogger, LogEvent, LogLevel, LogOptions, TLevel } from './typings'; /** * Logger instance (日志实例) */ export default class Logger implements ILogger { name: string; readonly appenders: Map; protected context: Record; protected _level: Level; /** * Create a logger instance (创建日志实例) * @param name Logger name (日志名称) * @param options Logging options (日志选项) */ constructor(name: string, { level, appenders }?: LogOptions); /** * Log level name (日志级别名称) */ get levelName(): TLevel; /** * Log level (日志级别) */ get level(): Level; /** * Set log level (设置日志级别) * @param level Log level (日志级别) */ set level(level: LogLevel); /** * Add context (添加上下文) * @param key Context key (上下文键) * @param value Context value (上下文值) */ addContext(key: any, value: any): void; /** * Remove context (移除上下文) * @param key Context key (上下文键) */ removeContext(key: any): void; /** * Clear context (清除上下文) */ clearContext(): void; /** * Dispose all appenders (关闭所有appenders) */ dispose(): Promise[]>; /** * Log a message of level TRACE (记录TRACE级别的日志) * @param args Message arguments (消息参数) */ trace(...args: any[]): void; /** * Log a message of level DEBUG (记录DEBUG级别的日志) * @param args Message arguments (消息参数) */ debug(...args: any[]): void; /** * Log a message of level INFO (记录INFO级别的日志) * @param args Message arguments (消息参数) */ info(...args: any[]): void; /** * Log a message of level WARN (记录WARN级别的日志) * @param args Message arguments (消息参数) */ warn(...args: any[]): void; /** * Log a message of level ERROR (记录ERROR级别的日志) * @param args Message arguments (消息参数) */ error(...args: any[]): void; /** * Log a message of level FATAL (记录FATAL级别的日志) * @param args Message arguments (消息参数) */ fatal(...args: any[]): void; /** * Create a log event (创建日志事件) * @param level Log level (日志级别) * @param message Message (消息) * @returns Log event (日志事件) */ protected createEvent(level: Level, message: any[]): LogEvent; /** * Log a message (记录日志) * @param level Log level (日志级别) * @param message Content (内容) */ protected log(level: Level, message: any[]): void; }