UNPKG

@kevin_men/websocket

Version:

TDengine Connector for nodejs and browser using WebSocket.

41 lines (40 loc) 1.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setLevel = void 0; const winston_1 = __importDefault(require("winston")); const winston_daily_rotate_file_1 = __importDefault(require("winston-daily-rotate-file")); const moment_timezone_1 = __importDefault(require("moment-timezone")); const customFormat = winston_1.default.format.printf(({ timestamp, level, message, ...meta }) => { const formattedTime = (0, moment_timezone_1.default)(timestamp).tz('Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss.SSS'); // 使用上海时区 return `${formattedTime} ${level}: ${message} ${Object.keys(meta).length ? JSON.stringify(meta, null, 2) : ''}`; }); const transport = new winston_daily_rotate_file_1.default({ filename: './logs/app-%DATE%.log', // Here is the file name template datePattern: 'YYYY-MM-DD', // date format zippedArchive: true, // Whether to compress the archive file into gzip format maxSize: '20m', // Single file size limit maxFiles: '14d', // Keep log files for 14 days handleExceptions: true, // Whether to handle exceptions json: false, // Whether to output logs in JSON format format: winston_1.default.format.combine(winston_1.default.format.timestamp(), customFormat), level: 'info', // set log level }); const logger = winston_1.default.createLogger({ transports: [transport], exitOnError: false, // Do not exit the process when an error occurs }); // 设置 BigInt 类型的序列化处理 transport.format = winston_1.default.format((info) => { if (info && info.message && typeof info.message === 'object' && typeof info.message.toJSON === 'function') { info.message = info.message.toJSON(); } return info; })(); function setLevel(level) { transport.level = level; } exports.setLevel = setLevel; exports.default = logger;