29 lines
759 B
JavaScript
29 lines
759 B
JavaScript
'use strict';
|
|
|
|
const format = require('./format');
|
|
const { MESSAGE } = require('triple-beam');
|
|
const jsonStringify = require('safe-stable-stringify');
|
|
|
|
/*
|
|
* function logstash (info)
|
|
* Returns a new instance of the LogStash Format that turns a
|
|
* log `info` object into pure JSON with the appropriate logstash
|
|
* options. This was previously exposed as { logstash: true }
|
|
* to transports in `winston < 3.0.0`.
|
|
*/
|
|
module.exports = format(info => {
|
|
const logstash = {};
|
|
if (info.message) {
|
|
logstash['@message'] = info.message;
|
|
delete info.message;
|
|
}
|
|
|
|
if (info.timestamp) {
|
|
logstash['@timestamp'] = info.timestamp;
|
|
delete info.timestamp;
|
|
}
|
|
|
|
logstash['@fields'] = info;
|
|
info[MESSAGE] = jsonStringify(logstash);
|
|
return info;
|
|
});
|