gpt4 book ai didi

javascript - @sentry/node 集成将 bunyan 日志调用包装为面包屑

转载 作者:搜寻专家 更新时间:2023-11-01 00:35:33 24 4
gpt4 key购买 nike

默认情况下,Sentry 集成了 console.log 以使其成为面包屑的一部分:

链接:Import name: Sentry.Integrations.Console

我们如何让它为 bunyan logger 工作?还有,比如:

const koa = require('koa');
const app = new koa();
const bunyan = require('bunyan');
const log = bunyan.createLogger({
name: 'app',
..... other settings go here ....
});
const Sentry = require('@sentry/node');
Sentry.init({
dsn: MY_DSN_HERE,
integrations: integrations => {
// should anything be handled here & how?
return [...integrations];
},
release: 'xxxx-xx-xx'
});

app.on('error', (err) => {
Sentry.captureException(err);
});

// I am trying all to be part of sentry breadcrumbs
// but only console.log('foo'); is working
console.log('foo');
log.info('bar');
log.warn('baz');
log.debug('any');
log.error('many');

throw new Error('help!');

附言我已经试过了 bunyan-sentry-stream@sentry/node 没有成功,它只是推送条目而不是将它们视为面包屑。

最佳答案

Bunyan 支持自定义流,而这些流只是函数调用。参见 https://github.com/trentm/node-bunyan#streams

下面是一个简单地写入控制台的自定义流示例。使用此示例代替写入 Sentry 模块会很直接,可能会调用 Sentry.addBreadcrumb({}) 或类似函数。

请注意,尽管下面示例中的变量 record 是一个 JSON 字符串,因此您可能希望解析它以从中获取日志级别、消息和其他数据以供提交到 Sentry 。

{
level: 'debug',
stream:
(function () {
return {
write: function(record) {
console.log('Hello: ' + record);
}
}
})()
}

关于javascript - @sentry/node 集成将 bunyan 日志调用包装为面包屑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53310580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com