heybox-bot
Version:
A heybox chat bot frame
44 lines • 2.24 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LoggerFactory = void 0;
// 导入winston库中的createLogger、Logger、transports和format模块,以及dayjs库
const winston_1 = require("winston");
const dayjs_1 = __importDefault(require("dayjs"));
// 定义LoggerFactory类
class LoggerFactory {
/**
* 创建一个Logger实例
*
* @param name 日志的名称,用于在日志条目中标识,可选,默认为undefined
* @param path 日志文件的存储路径,可选,默认为当前工作目录
* @param logLevel 日志级别,可选,默认为'info',可选值包括'debug'、'info'、'warn'和'error'
* @returns 返回一个配置好的Logger实例
*/
static createLogger(name = undefined, path = process.cwd(), logLevel = 'info') {
// 使用winston的createLogger方法创建并返回一个Logger实例
return (0, winston_1.createLogger)({
// 设置日志级别
level: logLevel,
// 配置日志传输(输出)的方式,包括控制台和文件
transports: [
// 配置控制台日志输出
new winston_1.transports.Console({
// 结合颜色格式化和自定义打印格式
format: winston_1.format.combine(winston_1.format.colorize(), winston_1.format.printf(info => `[${(0, dayjs_1.default)().format('YYYY-MM-DD HH:mm:ss')}]${name ? `[${name}]` : ''}[${info.level}] ${info.message}`))
}),
// 配置文件日志输出
new winston_1.transports.File({
// 指定日志文件的名称和路径
filename: `${path}/latest.log`,
// 使用自定义打印格式
format: winston_1.format.printf(info => `[${(0, dayjs_1.default)().format('YYYY-MM-DD HH:mm:ss')}]${name ? `[${name}]` : ''}[${info.level}] ${info.message}`)
})
]
});
}
}
exports.LoggerFactory = LoggerFactory;
//# sourceMappingURL=index.js.map