2015-09-28 20 views
5

健康チェックルートは数秒ごとにアマゾンによってポーリングされるため、特定のルートのログを無視することをお勧めします。hapi goodを特定のルートを無視する方法

良いプラグインに設定できるルート固有の設定はありますか?そのため、特定の1つのルートを無視するだけですか?

答えて

0

あなたが私の知る限りでは設定することができないresponseログを無視して見ていると思います。他のロギングでは、タグを使用してイベントをフィルタリングできます。

var someData = {foo:'bar'}; 
    request.log('myTag', someData); 

は、次の出力が生成されます

150928/224019.555, [request,myTag], data: {"foo":"bar"} 

goodオプションがこれを拾うでしょう:

var loggingOpts = { 
    reporters: [{ 
    reporter: require('good-console'), 
    events: { request: 'myTag' } 
    }] 
}; 
2

行うことが可能です。ここで良い用のカスタムフィルタを作成するドキュメントhttps://github.com/hapijs/good/blob/master/API.md#stream-transforms-using-plugin-configs

ハピルート設定

var routeConfig = { 
    plugins: { 
     good: { 
      suppressResponseEvent: true 
     } 
    } 
}; 

server.route({ 
    method: '*', 
    path: '/suscribe/{path*}', 
    handler: function(req, rep){ 
      rep("OK!"); 
    }, 
    config: routeConfig 
}); 

です。新しいnpmパッケージを作成する必要があります。良いときこのパッケージには、使用可能でなければなりません

'use strict'; 

module.exports = { 
    Filter: require("./filter.js") 
}; 

: は、この例では、良いフィルタ https://github.com/hapijs/good-squeeze/ からメインファイル(index.js)含まれているのアーキテクチャに従って名前を付けしようとしていますがロード中です。 次のコードは、良いフィルタパッケージにfilter.jsに入ります。

'use strict'; 

const Stream = require('stream'); 

class Filter extends Stream.Transform { 
    constructor(options) { 
     options = Object.assign({}, options, { 
      objectMode: true 
     }); 
     super(options); 
    } 
    _transform(data, enc, next) { 

     if (data.event === 'response' && data.config.suppressResponseEvent === true) { 

      return next(); 
     } 

     return next(null, data); 
    } 
} 

module.exports = Filter; 

最後に、良い構成にあなたのフィルタを追加します。

const options = { 
    ops: { 
     interval: 1000 
    }, 
    reporters: { 
     myConsoleReporter: [{ 
      module: 'good-squeeze', 
      name: 'Squeeze', 
      args: [{ log: '*', response: '*' }] 
     }, 
     { 
      module: 'good-filter', 
      name: 'Filter', 
      args: [{ log: '*', response: '*' }] 
     }, 
     { 
      module: 'good-console' 
     }, 'stdout'] 
    } 
}; 
1

は、ここで、少なくともhapi 16.1で動作する何か、good 7.1だ、とgood-squeeze 5.0。この考え方は、ヘルスチェックルートのログにタグを付けて、good-squeezeでそのルートを除外することです。

server.register({ 
    register: Good, 
    options: { 
    reporters: { 
     console: [ 
     { 
      module: 'good-squeeze', 
      name: 'Squeeze', 
      args: [ 
      { 
       // keep health checks from appearing in logs 
       response: { exclude: 'health' }, 
       log: '*', 
      }, 
      ], 
     }, 
     { 
      module: 'good-console', 
     }, 
     'stdout', 
     ], 
    }, 
    }, 
}); 

をしてからルートにタグを付ける:

good/good-squeezeは「health」を除外するための設定

server.route({ 
    method: 'GET', 
    path: '/admin/ok', 
    handler: (request, reply) => reply('ok'), 
    config: { 
    tags: ['health'], 
    }, 
}); 
+0

ベストの答えをこれまでのところ、ありがとう! – victorkohl

関連する問題