mirror of
https://github.com/whyour/qinglong.git
synced 2026-07-01 04:40:38 +08:00
修改服务启动逻辑
This commit is contained in:
+50
-25
@@ -4,35 +4,60 @@ import config from '../config';
|
||||
import path from 'path';
|
||||
|
||||
const levelMap: Record<string, string> = {
|
||||
info: '\ue6f5',
|
||||
warn: '\ue880',
|
||||
error: '\ue602',
|
||||
debug: '\ue67f'
|
||||
}
|
||||
|
||||
const customFormat = winston.format.combine(
|
||||
winston.format.splat(),
|
||||
winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
|
||||
winston.format.align(),
|
||||
winston.format.printf((i) => `[${levelMap[i.level]}${i.level}] [${[i.timestamp]}]: ${i.message}`),
|
||||
);
|
||||
|
||||
const defaultOptions = {
|
||||
format: customFormat,
|
||||
datePattern: "YYYY-MM-DD",
|
||||
maxSize: "20m",
|
||||
maxFiles: "7d",
|
||||
info: 'ℹ️', // info图标
|
||||
warn: '⚠️', // 警告图标
|
||||
error: '❌', // 错误图标
|
||||
debug: '🐛', // debug调试图标
|
||||
};
|
||||
|
||||
const baseFormat = [
|
||||
winston.format.splat(),
|
||||
winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
|
||||
winston.format.align(),
|
||||
];
|
||||
|
||||
const consoleFormat = winston.format.combine(
|
||||
winston.format.colorize({ level: true }),
|
||||
...baseFormat,
|
||||
winston.format.printf((info) => {
|
||||
return `[${info.level} ${info.timestamp}]:${info.message}`;
|
||||
}),
|
||||
);
|
||||
|
||||
const plainFormat = winston.format.combine(
|
||||
winston.format.uncolorize(),
|
||||
...baseFormat,
|
||||
winston.format.printf((info) => {
|
||||
return `[${levelMap[info.level] || ''}${info.level} ${info.timestamp}]:${
|
||||
info.message
|
||||
}`;
|
||||
}),
|
||||
);
|
||||
|
||||
const consoleTransport = new winston.transports.Console({
|
||||
format: consoleFormat,
|
||||
level: 'debug',
|
||||
});
|
||||
|
||||
const fileTransport = new winston.transports.DailyRotateFile({
|
||||
filename: path.join(config.systemLogPath, '%DATE%.log'),
|
||||
datePattern: 'YYYY-MM-DD',
|
||||
maxSize: '20m',
|
||||
maxFiles: '7d',
|
||||
format: plainFormat,
|
||||
level: config.logs.level || 'info',
|
||||
});
|
||||
|
||||
const LoggerInstance = winston.createLogger({
|
||||
level: config.logs.level,
|
||||
level: 'debug',
|
||||
levels: winston.config.npm.levels,
|
||||
transports: [
|
||||
new winston.transports.DailyRotateFile({
|
||||
filename: path.join(config.systemLogPath, '%DATE%.log'),
|
||||
...defaultOptions,
|
||||
})
|
||||
],
|
||||
transports: [consoleTransport, fileTransport],
|
||||
exceptionHandlers: [consoleTransport, fileTransport],
|
||||
rejectionHandlers: [consoleTransport, fileTransport],
|
||||
});
|
||||
|
||||
LoggerInstance.on('error', (error) => {
|
||||
console.error('Logger error:', error);
|
||||
});
|
||||
|
||||
export default LoggerInstance;
|
||||
|
||||
Reference in New Issue
Block a user