首页 > 解决方案 > Nodejs winston 记录端口 514 文件夹/yyyy/mm/dd/.log

问题描述

嗨,我想用 nodejs winston 记录 514 udp 端口​​。我想用相同的日志名称和不同的文件夹保存所有日志日记。示例 /listen/2019/11/04/test.log 第二天 /listen/2019/11/05/test.log 。我尝试但仅保存 1 个日期,并且日期更改时日志地址不会更改。

var winston = require('winston');
var d = new Date();
var year = d.getFullYear();
var month = (d.getMonth() + 1) ;
var day = d.getDate();
var n = d.getMinutes();
var shell = require('shelljs');
shell.mkdir('-p', '/listen/test/'+year+'/'+month+'/'+day);

var logger = winston.createLogger({
  level: 'info',
  format: winston.format.simple(),
  defaultMeta: { service: 'user-service' },
  transports: [

    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: '/listen/test/'+year+'/'+month+'/'+day+'/test.log' })
  ]
});

var PORT = 514;
var HOST = '0.0.0.0';
var dgram = require('dgram');
var server = dgram.createSocket('udp4');
server.bind(PORT, HOST);

server.on('listening', function () {
    var address = server.address();
    console.log('UDP Server listening on ' + address.address + ":" + address.port);
});

server.on('message', function (message, remote) {
      logger.info(message);
});

标签: node.js

解决方案


File因为运输不旋转。您需要使用DailyRotateFile附加模块:https ://github.com/winstonjs/winston-daily-rotate-file


推荐阅读