UNPKG

xincbot

Version:

A flexible QQ bot framework based on NapCat and node-napcat-ts

83 lines 3.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.logger = void 0; const winston_1 = __importDefault(require("winston")); const chalk_1 = __importDefault(require("chalk")); const defaultOptions = { level: 'info', format: 'simple', timestamp: true, colorize: true }; class Logger { logger; constructor(options = {}) { const opts = { ...defaultOptions, ...options }; this.logger = winston_1.default.createLogger({ level: opts.level, format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.printf(({ level, message, timestamp }) => { const color = this.getLevelColor(level); const ts = opts.timestamp ? `${chalk_1.default.gray(this.formatTimestamp(timestamp))} ` : ''; return `${ts}${color(level.toUpperCase())} ${message}`; })), transports: [ new winston_1.default.transports.Console(), new winston_1.default.transports.File({ filename: 'logs/error.log', level: 'error', format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.printf(({ level, message, timestamp }) => { return `${this.formatTimestamp(timestamp)} ${level.toUpperCase()} ${message}`; })) }), new winston_1.default.transports.File({ filename: 'logs/combined.log', format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.printf(({ level, message, timestamp }) => { return `${this.formatTimestamp(timestamp)} ${level.toUpperCase()} ${message}`; })) }) ] }); } formatTimestamp(timestamp) { const date = new Date(timestamp); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); const hours = String(date.getHours()).padStart(2, '0'); const minutes = String(date.getMinutes()).padStart(2, '0'); const seconds = String(date.getSeconds()).padStart(2, '0'); return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; } getLevelColor(level) { switch (level) { case 'error': return chalk_1.default.red; case 'warn': return chalk_1.default.yellow; case 'info': return chalk_1.default.blue; case 'debug': return chalk_1.default.green; default: return chalk_1.default.white; } } info(message) { this.logger.info(message); } error(message) { this.logger.error(message); } warn(message) { this.logger.warn(message); } debug(message) { this.logger.debug(message); } } exports.logger = new Logger(); exports.default = Logger; //# sourceMappingURL=logger.js.map