Javascript 哪个nodejs记录器具有运行时日志级别更改、纯文本/JSON支持和简单API
我正在寻找nodejs日志库,它允许:Javascript 哪个nodejs记录器具有运行时日志级别更改、纯文本/JSON支持和简单API,javascript,node.js,logging,Javascript,Node.js,Logging,我正在寻找nodejs日志库,它允许: 简单的日志记录-我希望能够调用log.debug('Something executed',objDump)或log.error('Got error',err),并将objDump打印出来并err包含在日志中(在出错的情况下作为JSON或使用堆栈跟踪),这样做的效果非常好。我需要一个非常简单的API来记录日志,以避免混淆util.formatmagic,并考虑是否应该使用%j或任何其他方法 运行时日志级别更改(我收到一个错误,希望将记录器切换到debu
- 简单的日志记录-我希望能够调用
或log.debug('Something executed',objDump)
,并将log.error('Got error',err)
打印出来并objDump
包含在日志中(在err
,这样做的效果非常好。我需要一个非常简单的API来记录日志,以避免混淆出错的情况下作为JSON或使用堆栈跟踪)
magic,并考虑是否应该使用util.format
或任何其他方法%j
- 运行时日志级别更改(我收到一个错误,希望将记录器切换到
模式,而不重新启动应用程序本身debug
- 为用户登录纯文本,为日志收集器登录JSON
- 将预定义元数据添加到每个日志语句(例如主机名、应用程序名、事务ID等)
logger.error('Got error,err)
记录错误时,根本不会记录错误本身。
Bunyan无法(AFAIK)以人类可读的格式登录,除非您使用其额外的CLI,我并不真正想要它
我还尝试了Bristol,这很有希望,但后来证明它不允许在运行时更改日志级别
反过来,Log4JS缺乏为每个日志语句设置元数据(AFAIK)
你能告诉我其他的库,或者在上面提到的库中做这些事情的方法吗?我肯定有这样一个库。我不敢相信我是那个想要日志库来做这些事情的人。你试过调试吗?很简单,但可以完成这项工作
Bunyan可以在不使用CLI的情况下登录到人可读的。您可以通过为此创建类对象并以以下方式引用流中的对象来完成此操作:
var bunyan = require('bunyan');
function MyRawStream() {}
MyRawStream.prototype.write = function (rec) {
console.log(rec.time.toISOString(),
bunyan.nameFromLevel[rec.level],
rec.msg);
}
var log = bunyan.createLogger({
name:'play',
streams: [
{
level: 'info',
stream: new MyRawStream(),
type: 'raw'
}]
});
创建后,您可以使用:
log.info('hi...');
来测试…然后看起来像
2017-03-07T05:49:56.890Z info hi...
您还可以通过以下方式在日志中使用颜色,只需导入
var colors = require('colors/safe')
以及更改MyRawStream写入方法中的console.log选项:
console.log(colors.red('[%s]')+' '+colors.blue('%s')+': '+colors.green('%s'),
rec.time.toISOString(),
bunyan.nameFromLevel[rec.level],
rec.msg);
您可以通过更改写入方法来相应地调整所有内容,但可能会对其他人有所帮助。可能是您正在寻找的(或者您已经发现了)
- 简单日志记录
- 运行时的日志级别更改
- 为用户登录纯文本,为日志收集器登录JSON
- 向每个日志语句添加预定义元数据
它声称它是最快的:我看到了debug,但它缺少太多的功能,我看不到将它用作真正的记录器。它还有这种令人恼火的printf格式:(所以感谢您的发布,但是
debug
对我来说不是一种方式。