【问题标题】:Sails.js 0.10.x: Log to fileSails.js 0.10.x:记录到文件
【发布时间】:2014-10-02 09:17:21
【问题描述】:

我想使用内置的 Sails.js 记录器并将所有内容记录到文件中。 “filePath”变量曾经在 config/log.js 中的 0.9.x 中工作,但它似乎不再在 0.10.x 中工作。是否已删除此功能 - 如果是,现在记录到磁盘的最佳方式是什么?

【问题讨论】:

    标签: node.js logging sails.js error-logging


    【解决方案1】:

    对于日志记录,Sails.js (>= 0.10.0) 依赖于 captains-log,这是一个“具有简单传递配置的轻量级记录器,可与更高级的日志记录库一起使用。”

    要记录到文件,您需要配置自定义记录器。我建议您使用Winston,并使用File Transport 进行配置。这相对容易做到:

    安装温斯顿

    $ npm install winston --save
    

    在您的应用中,编辑 config/log.js 文件并添加以下内容

    var winston = require('winston');
    
    var customLogger = new winston.Logger({
        transports: [
            new(winston.transports.File)({
                level: 'debug',
                filename: './logs/my_log_file.log'
            }),
        ],
    });
    
    module.exports.log = {
        colors: false,  // To get clean logs without prefixes or color codings
        custom: customLogger
    };
    

    使用标准sails log 命令记录任何消息

    sails.log.debug("Message to be logged");
    

    重启风帆

    $ sails lift
    

    您应该会看到内容存储在您的 ./logs/my_log_file.log 文件中。

    【讨论】:

    • 为什么必须重新启动服务器才能看到转储到文件的日志?此外,如果我从sails 控制台调用sails.log.info('whatever'),我在标准输出上看不到任何内容,文件中也看不到任何内容。从我的应用程序代码中调用它也是如此。知道出了什么问题吗?
    • 您知道如何通过多种传输方式启用/禁用颜色吗?我希望文件干净并带有颜色的控制台。
    • 使用winston@2.4.3 否则会报错winston.Logger is not a constructor。
    猜你喜欢
    • 2014-12-23
    • 1970-01-01
    • 2014-08-14
    • 2014-11-22
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    相关资源
    最近更新 更多