1

除了已经处理正常错误/事件等之外,我正在尝试设置 winston-loggly 来处理我的应用程序中的性能日志记录。我的记录器设置:

var winston = require('winston');
require('winston-loggly');

winston.setLevels({ error: 0, warn: 1, info: 2, verbose: 3, debug: 4, silly: 5 });

winston.addColors({
  silly: 'magenta',
  verbose: 'cyan',
  debug: 'blue',
  info: 'green',
  warn: 'yellow',
  error: 'red'
});

winston.remove(winston.transports.Console);
winston.add(winston.transports.Console, {
  level: 'silly',
  prettyPrint: true,
  colorize: true,
  silent: false,
  timestamp: true
});



winston.add(winston.transports.Loggly, {
        token: "MY-TOKEN",
        subdomain: "MY-SUBDOMAIN",
        tags: ["Winston-NodeJS"],
        json:true
    });


module.exports.info = function(message, arg){
    winston.log('info',message, arg);
};

module.exports.error = function(message, arg){
    winston.log('error', message, arg);
};

module.exports.warn = function(message, arg){
    winston.log('warn', message, arg);
};

module.exports.debug = function(message, arg){
    winston.log('debug', message, arg);
};

module.exports.winston = winston;

然后为了捕捉每条路线的性能,我一直在使用 Morgan,我可以通过管道将它登录到我的主 app.js 中:

var theHTTPLog = morgan("dev", {
  "stream": {
    write: function(str) { 
      logger.info(str, null); 
    }
  }
});


app.use(theHTTPLog);

然而,这使得摩根输出污染与正常的应用程序输出相同。我想在将所有摩根输出发送到 loggly 时将其标记为“性能”,以便我可以将其分开,并希望找到一种方法来聚合它以获取有关我的路线执行情况的统计信息。如何在日志时分配标签?

4

1 回答 1

0

比标签更好的解决方案是为特定类型的消息创建自定义日志级别并将它们记录在新级别。

于 2016-06-22T21:26:32.767 回答