UNPKG

@pisell/pisellos

Version:

一个可扩展的前端模块化SDK框架,支持插件系统

123 lines (122 loc) 2.75 kB
import App from "../app"; export type LogConsoleType = "info" | "warning" | "error" | "debug"; /** * 日志项接口 */ interface LogItem { type: LogConsoleType; title: string; date?: string; metadata?: any; } interface LogFile { fileName: string; date: string; fileContent: LogFileContent; } interface LogFileContent { metadata: any; logs: LogItem[]; } export interface LoggerOptions { prefix?: string; checkInterval?: number; feishuConfig?: any; retentionDays?: number; } /** * 日志管理器类 */ declare class LoggerManager { private logBuffer; private timer; private checkInterval; private prefix; private metadata; private db; private app; private feishuConfig; private retentionDays; private metadataFunction; /** * 构造函数 * @param prefix 日志前缀 * @param checkInterval 检查间隔时间,默认5分钟 */ constructor(app: App, options?: LoggerOptions); init(): void; /** * 初始化 IndexDB */ private initDB; /** * 设置元数据 * @param metadata 元数据 */ setMetadata(metadata: any): void; setMetadataFunction(metadataFunction: () => any): void; /** * 初始化定时器 */ initTimer(): void; /** * 添加日志 * @param log 日志项 */ addLog(log: LogItem): void; /** * 发送飞书通知 * @param log 日志项 */ private sendFeishuNotification; /** * 创建日志文件名 * @returns 日志文件名 */ private createFileName; /** * 创建日志文件 * @param _fileName 文件名 * @returns 日志文件对象 */ private createFile; /** * 存储日志到持久化存储 */ private storeLog; /** * 清理旧日志,只保留最近指定天数的日志 */ private cleanupOldLogs; /** * 获取日志文件列表 * @returns 日志文件列表 */ getLogFiles(): Promise<LogFile[]>; /** * 获取指定日志文件的内容 * @param fileName 日志文件名 * @returns 日志文件内容 */ getLogFile(fileName: string): Promise<LogFile | null>; /** * 清空指定日志文件 * @param fileName 日志文件名,不指定则清空所有日志 * @returns 是否成功 */ clearLogs(fileName?: string): Promise<boolean>; /** * 设置日志保留天数 * @param days 保留天数 */ setRetentionDays(days: number): void; /** * 手动触发清理旧日志 */ manualCleanup(): Promise<void>; /** * 销毁实例 */ destroy(): void; } export default LoggerManager;