2016-02-11 26 views
0

如何安裝bunyan記錄器,以便在他們可以爲他們自己的記錄儀獲取bunyan的孩子的路線上?Restify req.getLogger不是函數

嘗試:

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一步也是必需的,但在文檔沒有提及?

回答

2

下面是我在最近的應用程序中做到的。

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..."); 
+0

感謝,實際上'createLogger({log:createLogger({name:'foo'})})'也可以。根據你的回答,我添加了這個問題:https://github.com/restify/node-restify/issues/1011 –

+0

文檔錯了,我創建的問題催化了文檔更改。 –