Restify req.getLogger 不是函数

Restify req.getLogger is not a function

如何安装 bunyan 记录器,以便在路线上他们可以为自己的记录器获取 bunyan 的子代?

尝试:

import * as restify from 'restify';
import {createLogger} from 'bunyan';

let app = restify.createServer();

app.use(restify.queryParser());
app.use(restify.bodyParser());

app.on('after', restify.auditLogger({
    log: createLogger({
        name: 'audit',
        stream: process.stdout
    })
}));

app.get('/foo', (req, res, next) => {
    req.getLogger('foo').info('bar');
    res.json({});
});

app.listen(process.env.PORT || 3000, function() {
    console.info('%s listening at %s', app.name, app.url);
});

req.getLogger 应该按照 http://restify.com/#getloggercomponent 工作,但也许还需要一个 app.use 步骤,但文档中没有提到?

这是我在最近的申请中的做法。

var Bunyan = require('bunyan');
var log = new Bunyan();

var server = restify.createServer({
    log: log
});

然后,只要您有权访问请求对象,就可以像这样使用它。

req.log.error({req_id: req.id()}, "There was an error...");