@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
123 lines (122 loc) • 2.75 kB
TypeScript
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;