在 Intellij 中使用 node.js Bunyan 日志记录
Using node.js Bunyan Logging with Intellij
我正在为 node.js 子系统使用 bunyan 日志记录,并且通常使用 intellij IDEA。我想使用 bunyan's pretty printer 以便我可以在 intellij 中获得 buynan/json 日志的好处。
我找不到任何方法来做到这一点,但觉得它一定是可能的。有人知道怎么做吗?
更新:
下面的回答很成功。当我没有立即找到东西时,我最终在日志 class 中创建了这样的东西,我用它来包装这个功能并将它用于测试服务器:
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);
}
});
以上不应该 运行 在生产代码中,但认为它可能对某些人有用...
你可以在你的 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
});
我在 WebStorm 中做到了,用这个写了一个 shell 脚本(我的名字叫 node2bunyan):
#!/usr/bin/env bash
node $@ 2>&1 | bunyan --color
exit ${PIPESTATUS[0]}
并将其添加为 运行 配置的节点解释器:
那么你可以得到:
PS。我一直在为 PyCharm 做同样的事情,并在搜索时遇到了你的问题,
我正在为 node.js 子系统使用 bunyan 日志记录,并且通常使用 intellij IDEA。我想使用 bunyan's pretty printer 以便我可以在 intellij 中获得 buynan/json 日志的好处。
我找不到任何方法来做到这一点,但觉得它一定是可能的。有人知道怎么做吗?
更新:
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);
}
});
以上不应该 运行 在生产代码中,但认为它可能对某些人有用...
你可以在你的 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
});
我在 WebStorm 中做到了,用这个写了一个 shell 脚本(我的名字叫 node2bunyan):
#!/usr/bin/env bash
node $@ 2>&1 | bunyan --color
exit ${PIPESTATUS[0]}
并将其添加为 运行 配置的节点解释器:
那么你可以得到:
PS。我一直在为 PyCharm 做同样的事情,并在搜索时遇到了你的问题,