@agentkai/core
Version:
AgentKai核心包,提供AI助手系统的基础功能
65 lines (64 loc) • 1.98 kB
JavaScript
import { Logger, LogLevel } from './logger';
/**
* 日志中间件,提供临时修改日志配置的方法
*/
export class LoggingMiddleware {
/**
* 创建临时日志上下文
* @param callback 在临时日志配置中执行的回调函数
* @param options 临时日志配置
* @returns 回调函数的返回值
*/
static async withContext(callback, options) {
const originalOptions = Logger.getGlobalOptions();
try {
Logger.setGlobalOptions({ ...originalOptions, ...options });
return await callback();
}
finally {
Logger.setGlobalOptions(originalOptions);
}
}
/**
* 在静默日志模式下执行操作
* @param callback 要执行的操作
* @returns 回调函数的返回值
*/
static async withSilentLogs(callback) {
return LoggingMiddleware.withContext(callback, {
showLogLevel: false,
showTimestamp: false,
showModule: false
});
}
/**
* 在UI操作上下文中执行操作,临时抑制非错误日志
* @param callback 要执行的操作
* @returns 回调函数的返回值
*/
static async withUIContext(callback) {
const originalLevel = Logger.getGlobalLogLevel();
try {
Logger.setGlobalLogLevel(LogLevel.ERROR); // 只显示错误日志
return await callback();
}
finally {
Logger.setGlobalLogLevel(originalLevel);
}
}
/**
* 在调试模式下执行操作
* @param callback 要执行的操作
* @returns 回调函数的返回值
*/
static async withDebugContext(callback) {
const originalLevel = Logger.getGlobalLogLevel();
try {
Logger.setGlobalLogLevel(LogLevel.DEBUG);
return await callback();
}
finally {
Logger.setGlobalLogLevel(originalLevel);
}
}
}