diff --git a/logstash.js b/logstash.js index aac8492..93ce996 100644 --- a/logstash.js +++ b/logstash.js @@ -13,8 +13,9 @@ const jsonStringify = require('fast-safe-stringify'); */ module.exports = format(info => { const logstash = {}; + if (info.message) { - logstash['@message'] = info.message; + logstash.message = info.message; delete info.message; } @@ -23,7 +24,12 @@ module.exports = format(info => { delete info.timestamp; } - logstash['@fields'] = info; + if (info.level) { + logstash.level = info.level; + delete info.level; + } + + logstash['@version'] = 1; info[MESSAGE] = jsonStringify(logstash); return info; }); diff --git a/test/logstash.test.js b/test/logstash.test.js index c55f362..9c0eacf 100644 --- a/test/logstash.test.js +++ b/test/logstash.test.js @@ -9,36 +9,34 @@ const { MESSAGE } = require('triple-beam'); const TIMESTAMP = Symbol.for('timestamp'); describe('logstash', () => { - it('default { @message, @fields } sets info[MESSAGE]', helpers.assumeFormatted( + it('default { @version, message } sets info[MESSAGE]', helpers.assumeFormatted( logstash(), { level: 'info', message: 'whatever' }, (info, expected) => { - assume(info.level).equals('info'); + assume(info.level).equals(undefined); assume(info.message).equals(undefined); assume(info[MESSAGE]).equals(JSON.stringify({ - '@message': expected.message, - '@fields': { - level: expected.level - } + 'message': expected.message, + 'level': expected.level, + '@version': 1 })); } )); - it('with timestamp { @message, @timestamp, @fields } sets info[MESSAGE]', helpers.assumeFormatted( + it('with timestamp { @version, @timestamp, message } sets info[MESSAGE]', helpers.assumeFormatted( combine( timestamp({ alias: TIMESTAMP }), logstash() ), { level: 'info', message: 'whatever' }, (info, expected) => { - assume(info.level).equals('info'); + assume(info.level).equals(undefined); assume(info.message).equals(undefined); assume(info[MESSAGE]).equals(JSON.stringify({ - '@message': expected.message, + 'message': expected.message, '@timestamp': info[TIMESTAMP], - '@fields': { - level: expected.level - } + 'level': expected.level, + '@version': 1 })); } ));