import { LogLevel, ILoggerConfig, TLogLevel, UploadLogParams } from '../../type/index'; declare class Logger { private action; private worker; private isArrowUpload; currentLevel: LogLevel; config: ILoggerConfig; isProgress: boolean; isUpdateVersion: boolean; stopTaskKey: string; taskPromiseMap: { [key: string]: any; }; private isMainThread; constructor(config: ILoggerConfig); /** * 获取日志模块配置 * * @returns { ILoggerConfig } - 日志模块配置 */ getConfig(): ILoggerConfig; /** * 启动日志模块 * * @param { boolean } enableClearTable - 是否清理表 * @returns { boolean } */ start(enableClearTable?: boolean | undefined): true | "The log module is already enabled, please stop it first"; /** * 接收WebWorker线程消息 * * @param { any } msg - WebWorker消息 */ onMessage(msg: any): Promise; /** * 停止Logger,销毁数据,更新表索引 */ private destroyPromiseTask; /** * 停止日志模块 */ stop(): Promise; /** * 停止日志模块-内部调用 * 此方法不需要更新表的索引,会一直在同一个表读/写数据 * * @param { boolean } enabledUpdateIndex - 是否更新表 */ stopWithoutUpdateIndex(): Promise; /** * 监听WebWorker错误 * * @param { AbstractWorker } this - worker实例 * @param { ErrorEvent } event - 错误内容 */ private onErrorWorker; /** * 监听WebWorker消息错误 * * @param { Worker } this - worker实例 * @param { MessageEvent } event - 错误内容 */ private onMessageErrorWorker; /** * 缓存表的版本和索引位置 * * @param { boolean } increase - 是否自增索引序列号 */ private updateTableIndex; /** * 获取可用的表名 */ private getTableIndex; /** * 调试模式下,控制台输出日志的等级 * * @param { LogLevel } level 日志等级 * @param { boolean } mainThread 是否在主线程console日志,默认false, 在worker中console * */ setLogLevel: (level: TLogLevel, mainThread?: boolean) => void; /** * 设置日志服务器地址 * * @public * @param { string } logServer Log服务器地址 */ setLogServer: (logServer: string) => void; /** * 控制台输出LOG信息,并写入日志 * * @param { string } title 可选,日志的标题 * @param { any } content 可选,日志内容,必须是可序列化的数据 * @param { any[] } rest 可选,函数剩余参数 */ log(title: string, content?: any, ...rest: any[]): void; /** * 控制台输出调试信息,并写入日志 * * @public * @param { string } title 可选,日志的标题 * @param { any } content 可选,日志内容,必须是可序列化的数据 * @param { any[] } rest 可选,函数剩余参数 */ debug(title?: string, content?: any, ...rest: any[]): void; /** * 控制台输出警告信息,并写入日志 * 输出 WARNING 和 ERROR 级别的日志信息 * * @public * @param { string } title 可选,日志的标题 * @param { any } content 可选,日志内容,必须是可序列化的数据 * @param { any[] } rest 可选,函数剩余参数 */ warn(title?: string, content?: any, ...rest: any[]): void; /** * 控制台输出错误信息,并写入日志 * 输出 ERROR 级别的日志信息 * * @public * @param { string } title 可选,日志的标题 * @param { any } content 可选,日志内容,必须是可序列化的数据 * @param { any[] } rest 可选,函数剩余参数 */ error(title: any, content?: any, ...rest: any[]): void; /** * 输出致命信息,并写入日志 * 输出 FATAL 级别的日志信息 * * @public * @param { string } title 日志key * @param { any } content 日志内容,必须是可序列化的数据 * @param { any[] } rest 其他内容,同content */ fatal(title: any, content?: any, ...rest: any[]): void; /** * 发送日志内容 * * @param { any } message - 消息体 * @returns */ sendLog(message: any): void; /** * 下载日志数据到本地,可在浏览器控制台中调用 */ downloadLog: (fileName?: string | "") => Promise; /** * 上传会议日志到小鱼服务器 * * @param { string } name 可选,上传文件名,默认值是"" * @param { string } account 可选,上传账号,默认值是"" * @param { string } comments 可选,上传时备注信息,默认值是"" * @returns { boolean } 上传结果 */ uploadLog(name?: string, account?: string, comments?: string): Promise; /** * 上传日志到小鱼Devops平台 * * @param { UploadLogParams } config - 日志上传参数 * @param { Blob } blob - 日志Blob数据 * @returns { boolean } 上传结果 */ uploadLogProcess(config: UploadLogParams, blob: Blob): Promise; /** * 允许日志上传 */ enableLogUpload(): void; /** * 禁用日志上传 */ disableLogUpload(): void; /** * 获取日志数据 * * @returns */ getLogData(): Promise; } export default Logger;