I'm working on a Restful API and I'm logging all the important steps with bunyan, including the requests. I'm having two problems with logging:
My first problem is that when I log them, all my objects, instead of appearing like independent objects, appear in the msg
field, like strings.
Here is my code to log the requests:
var logger = bunyan.createLogger({
name: 'main',
streams: [{
level: 'info',
path: './logs/requests.log'
}]
});
logRequest = function(request){
logger.info("Request started.", {id: request.id}, {method: request.method});
};
and when I see the request.log file it appears like this (I've just added some tabs to make it more comfortable to see) :
{
"name": "logger",
"hostname": "LLAS",
"pid": 7700,
"level": 30,
"msg":"Request started. { id: '1428527975041:LLAS:7700:i898o4l5:10000'{ method:'post' } ",
"time":"2015-04-08T21:19:35.055Z",
"v":0
}
だから私の問題は、「msg」フィールドです。「id」と「method」を文字列ではなく他のフィールドと同じように表示したいのです。いいえ:
{
"name": "logger",
"hostname": "LLAS",
"pid": 7700,
"level": 30,
"msg":"Request started.",
"id": '1428527975041:LLAS:7700:i898o4l5:10000',
"method": 'post',
"time":"2015-04-08T21:19:35.055Z",
"v":0
}
どうすれば問題を解決できますか?
そして私の2番目の問題は、同じファイルに複数のログを記録すると、JSONが次のように新しい行ではなく同じ行に書き込まれることです。
{"name":"logger",...,"v":0}{"name":"logger",...,"v":0}
これの代わりに:
{"name":"logger",...,"v":0}
{"name":"logger",...,"v":0}
そして、同じ行でそれらのオブジェクトを後で操作することはできません。また、そのように読み、維持するのも困難です。
なぜこれが起こっているのか知っている人はいますか?