const { createLogger, format, transports } = require('winston'); require('winston-daily-rotate-file'); const { combine, timestamp, label, printf } = format; // 自定义日志格式 const myFormat = printf(({ level, message, label, timestamp }) => { return `${timestamp} [${label}] ${level}: ${message}`; }); // 创建日志记录器 const logger = createLogger({ level: 'info', // 设置最低日志级别 format: combine( label({ label: 'dataSocketService' }), // 可选:给日志添加标签 timestamp(), // 添加时间戳 myFormat // 使用自定义格式 ), transports: [ new transports.Console(), // 输出到控制台(可选) new transports.DailyRotateFile({ filename: 'logs/application-%DATE%.log', // 日志文件名模式 datePattern: 'YYYY-MM-DD', // 日期格式 zippedArchive: true, // 归档旧日志文件时压缩 maxSize: '20m', // 文件最大大小 maxFiles: '14d', // 保留最近14天的日志文件 }), ], }); module.exports = logger;