标签: bunyan

Node.js中的日志轮换?

在我的网站分析中,我将数据记录在纯文本文件中.我想每天轮换日志,因为它记录了太多的数据.目前我正在使用bunyan来旋转日志.

我面临的问题

它正确地旋转文件,但是旋转的日志文件在名称log.0log.1,等等.我想要文件名log.05-08-2013,log.04-08-2013

我无法编辑bunyan包的来源,因为我们正在使用package.jsonvia NPM 安装模块.

所以我的问题是 - Node.js中是否有其他日志轮换符合我的要求?

node.js log-rotation bunyan

18
推荐指数
3
解决办法
2万
查看次数

节点的常见日志记录,快速应用 - 最佳实践?

我正在开发一个带有几十个模块的node.js应用程序,并使用bunyan进行日志记录(JSON输出,多个可配置流).我一直在寻找如何在所有模块中实现实例的很好的例子,但是还没有看到我可以从中学到的一个非常干净的例子.

下面说明了一种有效的方法,但对我来说似乎相当不优雅(丑陋).我一般都是node&commonjs javascript的新手,所以寻找有关如何改进它的建议.

module:./ lib/logger

// load config file (would like this to be passed in to the constructor)
nconf.file({ file: fileConfig});
var logSetting = nconf.get('log');

// instantiate the logger
var Bunyan = require('bunyan');
var log = new Bunyan({
    name: logSetting.name,
streams : [
        { stream  : process.stdout, 
        level : logSetting.stdoutLevel},
        {    path : logSetting.logfile, 
            level : logSetting.logfileLevel}
    ],
serializers : Bunyan.stdSerializers
});

function Logger() {
};

Logger.prototype.info = function info(e) { log.info(e) };
Logger.prototype.debug = function debug(e) { log.debug(e) …
Run Code Online (Sandbox Code Playgroud)

javascript logging node.js express bunyan

13
推荐指数
2
解决办法
7603
查看次数

如何使用Restify的RequestLogger?

RequestLogger

设置填充当前请求ID的子bunyan记录器,以及您定义的任何其他参数.

server.use(restify.requestLogger());
Run Code Online (Sandbox Code Playgroud)

注册插件不会记录请求.

node.js restify bunyan

13
推荐指数
1
解决办法
3939
查看次数

bunyan log.child正确用例?

我一直在寻找bunyan登录我的nodejs应用程序.我试了一下,一切似乎都很好.我已经跳过了一节log.child,但现在我想了解如何使用它.我认为它的目的是允许我为日志条目指定一些特殊标识符,以便我可以唯一地标识该日志与其他日志条目的关联方式.

如果是这种情况,我会设想自己log.child在每个请求中使用:

var bunyan = require('bunyan');
var log = bunyan.createLogger({name: 'myapp'});

router.post('/submit', function(req, res) {
    var logChild = log.child({reqId: uuid.v4()});
    logChild.info({ req:req }, req.user.name + ' has called /submit');

    saveData(req)
    .then(function(data) {
        logChild.info({data: data}, req.user.name + ' has saved to DB successfully in /submit');
        res.json({'success': 'Saved!'});
    })
    .error(function(err) {
        logChild.error({ err: err }, req.user.name + ' has caused an error in /submit ');
        res.status(500).json("error": err});
    }); 
});
Run Code Online (Sandbox Code Playgroud)

这样,如果用户在30秒范围内BobPOST /submit两次,则会有一些上下文区分日志文件中的两个不同调用. …

javascript logging node.js express bunyan

9
推荐指数
1
解决办法
2344
查看次数

将Bunyan应用于大型节点应用程序的推荐方法?

我正在开发一个包含多个模块的节点应用程序.我现在正在尝试正确设置日志记录(应该在开始时这样做),并考虑使用Bunyan.

logger本答案所示,拥有一个导出然后由其他模块所需的单个模块或者logger直接在每个模块中定义一个新的bunyan 实例并相应地配置它会更好吗?为了重复使用,我想象前者,但我不知道这是否会受到限制.

如果我有一个定义的单一记录器

var bunyan        = require('bunyan');
var logger = bunyan.createLogger({
   name: "filter",
   streams: [
      {
         level: 'info',
         stream: process.stdout
      },
      {
         level: 'error',
         path: '../error.log'
      },
      {
         level: 'debug',
         path: '../debug.log'
      }
   ]
});

module.exports = logger;
Run Code Online (Sandbox Code Playgroud)

然后,使用它的所有模块也将使用名称进行日志记录filter,而每个模块记录到更能代表自身的名称可能更有意义.

另外,我认为所有模块都应该将错误记录到同一个日志文件中,例如systemErr.log(以便更好地概述),还是应该记录到自己的错误日志,例如module1Err.log,module2Err.log?

logging node.js bunyan

8
推荐指数
1
解决办法
4076
查看次数

我可以更改 winston 中日志数据的颜色吗?

我碰巧使用 bunyan 来记录数据。我希望日志以适当的颜色打印,例如错误为红色、调试黄色等;不幸的是,我无论如何都找不到这样做。现在我想知道温斯顿是否有可能。我可以在 winston 中更改日志数据的颜色吗?

这是我执行的代码。

  var logger = require("winston-color");
  var winston = require('winston');  
  var util    = require('util');

  var logFilename = __dirname + '/logfile.log';

  var logger = new (winston.Logger)({
    transports: [
      new (winston.transports.Console)(),
      new (winston.transports.File)({ 
      filename: 'logfile.log',
      timestamp:true 
     }),
      new (winston.transports.File)({
      name: 'error-log',
      filename: 'error.log',
      level: 'error'
      }),

     new (winston.transports.File)({
     name: 'info-log',
     filename: 'info.log',
     level: 'info'
     }),
    ]
  });
  logger.info('Hello Winston info!');
  logger.debug('Hello Winston debug!');
  logger.warn('Hello Winston warn!');
  logger.info('Hello again distributed logs'); 
  logger.error('error1');
  logger.error('error2');
Run Code Online (Sandbox Code Playgroud)

输出屏幕截图在这里

工作代码的输出在这里

node.js winston bunyan hapijs

8
推荐指数
4
解决办法
1万
查看次数

更改不同级别的bunyan日志颜色

使用Bunyan时,我的所有日​​志级别都使用相同的青色,如下所示:

在此输入图像描述

这是我们使用的Bunyan配置:

const bunyan = require('bunyan');
module.exports = bunyan.createLogger({name: 'cdt-api-server'});
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 如何让Bunyan使用红色或洋红色来记录错误信息/堆栈跟踪?问题是红色字符中的"错误"不足以引起我的注意 - 我希望整个堆栈都是红色或洋红色.

这是Bunyan自述文件:https: //github.com/trentm/nodebunbunyan

我只看到一次提到的"颜色".

我们可以这样做吗?

const bunyan = require('bunyan');

module.exports = bunyan.createLogger({
  name: 'cdt-api-server',
  streams: [
    {
      level: 'trace',
      stream: process.stdout,
      color: 'black',
    },
    {
      level: 'debug',
      stream: process.stdout,
      color: 'blue',
    },
    {
      level: 'info',
      stream: process.stdout,
      color: 'cyan',
    },
    {
      level: 'error',
      path: process.stderr,
      color: 'red'
    },
    {
      level: 'warn',
      path: process.stderr,
      color: 'magenta'
    }
  ]
});
Run Code Online (Sandbox Code Playgroud)

logging error-logging node.js bunyan

6
推荐指数
2
解决办法
1537
查看次数

是否可以在bunyan日志消息中使用级别值而不是数字?

Bunyan-node 日志以数字日志级别打印(到标准输出),如 Bunyan 文档中所定义(https://github.com/trentm/node-bunyan#levels

{ ... , level: 10, .... }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,是否可以用实际值打印它们-

{ ... , level: "trace", .... }
Run Code Online (Sandbox Code Playgroud)

node.js bunyan

5
推荐指数
1
解决办法
1785
查看次数

Winston 批量记录到数组并刷新到数据库

是否有一种传输或机制允许记录到内存结构(如数组),然后偶尔刷新到数据库?

不想对每个日志进行昂贵的数据库调用,因此希望每隔一段时间将日志批量刷新到数据库。

是否有示例或方法使用winston 和bunyan 记录到数组或某种此类结构?

logging node.js winston bunyan

5
推荐指数
0
解决办法
531
查看次数

Bunyan 记录器中任何对象的序列化器

如何在不修改调用记录器的方式的情况下实现处理任何类型对象的序列化器?

logging node.js bunyan

5
推荐指数
0
解决办法
300
查看次数