首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Winston:如何轮换日志

Winston:如何轮换日志
EN

Stack Overflow用户
提问于 2012-07-10 06:12:05
回答 6查看 45.1K关注 0票数 45

如何在使用Winston处理node.js日志记录时轮换日志。也就是说,我如何为应用程序运行的每一天创建一个新文件?

代码语言:javascript
复制
    var logger = new (winston.Logger)({
       transports: [
          new (winston.transports.Console)(),
          new (winston.transports.File)({ filename: '2012-07-09.log' })
      ]
});

logger.log('info', 'Test Log Message', { anything: 'This is metadata' });
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-07-10 16:04:57

这里是winston的作者和维护者。

目前,每天登录到一个新文件是一个开放的特性请求:https://github.com/flatiron/winston/issues/10。我很乐意看到有人实施它。

也就是说,还有其他选择:

  1. 文件传输接受一个maxsize选项,当日志文件超过特定字节大小时,它将旋转日志文件。
  2. 还有一个打开的拉-请求,它有一个新的传输,我还没有机会真正深入研究"fileRotate",它似乎执行这种基于日期的旋转:
票数 30
EN

Stack Overflow用户

发布于 2014-03-08 13:02:25

这个特性已经存在,我们正在生产环境中使用它,winston.transports.DailyRotateFile:

代码语言:javascript
复制
var timeFormatFn = function() {
    'use strict';
    return moment().format(cfg.timeFormat);
};

var logger = new(winston.Logger)({
    exitOnError: false,
    transports: [
        new(winston.transports.DailyRotateFile)({
            filename: cfg.appLogName,
            dirname: __dirname + '/../' + cfg.logsDirectory,
            datePattern: cfg.rollingDatePattern,
            timestamp: timeFormatFn
        }),
        new(winston.transports.Console)({
            colorize: true,
            timestamp: timeFormatFn
        })
    ]
});
票数 25
EN

Stack Overflow用户

发布于 2018-01-29 19:11:59

您可以使用以下代码每天轮换日志文件:

代码语言:javascript
复制
var winston = require('winston');
require('winston-daily-rotate-file');
var transport = new (winston.transports.DailyRotateFile)({
    filename: './log',
    datePattern: 'yyyy-MM-dd.',
    prepend: true,
    level: 'info'
});
var logger = new (winston.createLogger)({
    transports: [
      transport
    ]
});
logger.info('Hello World!');
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11403953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档