德朗6000透析机socket客户端程序通讯
gx
chenyc
2025-12-10 efa42a573642e7de5e3f0621034822c3238e80cb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const winston = require('winston');
require('winston-daily-rotate-file');
 
 
function formatDate(date) {
    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}`;
  }
// 配置日志格式
const logger = winston.createLogger({
    level: 'info',
    format: winston.format.combine(
        winston.format.timestamp(),
        winston.format.printf(info => `${formatDate(new Date(info.timestamp))} [${info.level}] ${info.message}`)
    ),
    transports: [
        // 输出到控制台(可选)
        new winston.transports.Console({
            format: winston.format.combine(
                winston.format.colorize(),
                winston.format.printf(info => `${info.timestamp} [${info.level}] ${info.message}`)
            )
        }),
        // 每天轮转的日志文件
        new winston.transports.DailyRotateFile({
            filename: 'logs/info-%DATE%.log', // 日志文件名模式
            datePattern: 'YYYY-MM-DD', // 日期格式
            zippedArchive: true, // 归档旧日志文件时压缩
            maxSize: '20m', // 文件最大大小
            maxFiles: '14d', // 保留最近14天的日志文件
            level: 'info' // 设置此传输的最低日志级别
        }),
        // 错误日志文件
        new winston.transports.DailyRotateFile({
            filename: 'logs/error-%DATE%.log', // 错误日志文件名模式
            datePattern: 'YYYY-MM-DD', // 日期格式
            zippedArchive: true, // 归档旧日志文件时压缩
            maxSize: '20m', // 文件最大大小
            maxFiles: '14d', // 保留最近14天的日志文件
            level: 'error' // 设置此传输的最低日志级别为 error
        })
    ]
});
 
// 导出日志函数
module.exports = {
    info: (message) => logger.info(message),
    warn: (message) => logger.warn(message),
    error: (message) => logger.error(message)
};