From 31c8a2d8d1450b48a4f7cb7774829705ffa9b1b3 Mon Sep 17 00:00:00 2001 From: Rami Cohen Date: Sat, 26 Aug 2017 09:14:08 -0600 Subject: [PATCH] fix: sticky fields Fixed an issue that was introduced in commit 6746e2e0488f3c900fd358af0a50d4795df65de7 All fields became sticky, so each time a field was sent via a message, it showed up in all messages after that --- lib/appenders/logstashUDP.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) mode change 100644 => 100755 lib/appenders/logstashUDP.js diff --git a/lib/appenders/logstashUDP.js b/lib/appenders/logstashUDP.js old mode 100644 new mode 100755 index 4d6ce8a..de4a521 --- a/lib/appenders/logstashUDP.js +++ b/lib/appenders/logstashUDP.js @@ -37,28 +37,34 @@ function logstashUDP(config, layout) { @version is the version number of this json schema Every other field is valid and fine. */ + + const fields = {}; + Object.keys(config.fields).forEach((key) => { + fields[key] = config.fields[key]; + }); + /* eslint no-prototype-builtins:1,no-restricted-syntax:[1, "ForInStatement"] */ if (loggingEvent.data.length > 1) { const secondEvData = loggingEvent.data[1]; Object.keys(secondEvData).forEach((key) => { - config.fields[key] = secondEvData[key]; + fields[key] = secondEvData[key]; }); } - config.fields.level = loggingEvent.level.levelStr; - config.fields.category = loggingEvent.categoryName; + fields.level = loggingEvent.level.levelStr; + fields.category = loggingEvent.categoryName; const logObject = { '@version': '1', '@timestamp': (new Date(loggingEvent.startTime)).toISOString(), type: type, message: layout(loggingEvent), - fields: config.fields + fields: fields }; - const keys = Object.keys(config.fields); - for (let i = 0, length = keys.length; i < length; i += 1) { - logObject[keys[i]] = config.fields[keys[i]]; - } + Object.keys(fields).forEach((key) => { + logObject[key] = fields[key]; + }); + sendLog(udp, config.host, config.port, logObject); }