LaiTool/src/main/logger.js

59 lines
1.7 KiB
JavaScript
Raw Normal View History

2024-06-06 13:12:04 +08:00
// const winston = require('winston');
import winston from 'winston';
import path from 'path';
import DailyRotateFile from 'winston-daily-rotate-file';
export class Logger {
constructor(log_folder) {
this.log_folder = log_folder;
this.logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.printf(info => `${info.timestamp} [${info.level.toUpperCase()}] [${info.service}] ${info.message}`)
),
transports: [
new DailyRotateFile({
filename: path.resolve(this.log_folder, `LAITool-%DATE%.log`),
datePattern: 'YYYY-MM-DD',
zippedArchive: true,
maxSize: '10m',
maxFiles: '14d'
})
],
});
if (process.env.NODE_ENV !== 'production') {
this.logger.add(new winston.transports.Console({
format: winston.format.simple(),
}));
}
}
/**
* 保存info级别的日志
* @param {*} service service 名称
* @param {*} message 消息
*/
info(service, message) {
this.logger.info(message, { service });
}
/**
* 保存error级别的日志
* @param {*} service service 名称
* @param {*} message 消息
*/
error(service, message) {
this.logger.error(message, { service });
}
/**
* 保存warn级别的日志
* @param {*} service service 名称
* @param {*} message 消息
*/
warn(service, message) {
this.logger.warn(message, { service });
}
}