健康チェックルートは数秒ごとにアマゾンによってポーリングされるため、特定のルートのログを無視することをお勧めします。hapi goodを特定のルートを無視する方法
良いプラグインに設定できるルート固有の設定はありますか?そのため、特定の1つのルートを無視するだけですか?
健康チェックルートは数秒ごとにアマゾンによってポーリングされるため、特定のルートのログを無視することをお勧めします。hapi goodを特定のルートを無視する方法
良いプラグインに設定できるルート固有の設定はありますか?そのため、特定の1つのルートを無視するだけですか?
あなたが私の知る限りでは設定することができない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' }
}]
};
行うことが可能です。ここで良い用のカスタムフィルタを作成するドキュメント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']
}
};
は、ここで、少なくとも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'],
},
});
ベストの答えをこれまでのところ、ありがとう! – victorkohl