3

我正在为 node.js 子系统使用 bunyan 日志记录,通常使用 intellij IDEA。我想使用bunyan 的漂亮打印机,这样我就可以在 intellij 中获得 buynan/json 日志的好处。

我找不到任何方法来做到这一点,但觉得这一定是可能的。有没有人想出如何做到这一点?

更新:

@cyue下面的回答就像一个冠军。当我没有马上找到东西时,我最终在一个日志类中创建了类似的东西,我用它来包装这个功能并将它用于测试服务器:

var bunyan = require('bunyan');
var bunyanFormat = require('bunyan-format');
var standardOut = bunyanFormat({outputMode: 'long', levelInString: true});
var errorOut = bunyanFormat({outputMode: 'bunyan', levelInString: true});
var bunyanLogger = bunyan.createLogger({
    name: 'tot',
    streams: [
        {
            stream: process.stdout ,
            level: 'trace'
        },
        {
            stream: process.stderr ,
            level: 'warn'
        }
    ],
    serializers: {
        req: bunyan.stdSerializers.req,
        res: bunyan.stdSerializers.res,
        err: bunyan.stdSerializers.err,
        error: bunyan.stdSerializers.err
    }
});
eventLogger.on('log', function (log) {
    if (resolveLevel(log.level) >= minimumLogLevel) {
        bunyanLogger[log.level].apply(bunyanLogger, log.arguments);
    }
});

以上不应该在生产代码中运行,但认为它可能对某些人有用......

4

2 回答 2

7

我在 WebStorm 中管理它,用这个编写一个 shell 脚本(我的名为 node2bunyan):

#!/usr/bin/env bash

node $@ 2>&1 | bunyan --color
exit ${PIPESTATUS[0]}

并将其添加为运行配置的节点解释器: 在此处输入图像描述

然后你可以得到: 在此处输入图像描述

PS。我坚持为 PyCharm 得到相同的结果,并在搜索 SO 时遇到了你的问题,我对 PyCharm 的问题

于 2016-08-02T10:40:34.940 回答
2

你可以在你的 JS 项目中使用这个库:

https://github.com/mrrama/node-bunyan-prettystream

你像这样配置它:

var bunyan = require('bunyan');
var PrettyStream = require('bunyan-prettystream');
var prettyStream = new PrettyStream();

prettyStream.pipe(process.stdout);

// Note this is an object with key 'stream' inside array.
// The object is the stream definition as far as Bunyan is concerned.
var streams = [{
   stream: prettyStream
}];

bunyan.createLogger({
   streams: streams,
   serializers: bunyan.stdSerializers
});
于 2016-05-09T21:20:11.167 回答