xincbot
Version:
A flexible QQ bot framework based on NapCat and node-napcat-ts
83 lines • 3.35 kB
JavaScript
;
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