diff --git a/logstash.js b/logstash.js index 3493733..e56a516 100644 --- a/logstash.js +++ b/logstash.js @@ -13,12 +13,12 @@ const jsonStringify = require('safe-stable-stringify'); */ module.exports = format(info => { const logstash = {}; - if (info.message) { + if (info.message !== undefined) { logstash['@message'] = info.message; delete info.message; } - if (info.timestamp) { + if (info.timestamp !== undefined) { logstash['@timestamp'] = info.timestamp; delete info.timestamp; } diff --git a/test/logstash.test.js b/test/logstash.test.js index 1248ade..9522609 100644 --- a/test/logstash.test.js +++ b/test/logstash.test.js @@ -42,4 +42,22 @@ describe('logstash', () => { })); } )); + + it('preserves empty messages and zero timestamps', helpers.assumeFormatted( + logstash(), + { level: 'info', message: '', timestamp: 0, context: 'example' }, + info => { + assume(info.message).equals(undefined); + assume(info.timestamp).equals(undefined); + assume(info[MESSAGE]).equals(JSON.stringify({ + '@message': '', + '@timestamp': 0, + '@fields': { + level: 'info', + context: 'example' + } + })); + } + )); + });