Merge pull request #531 from ramicohen303/issue-447

fix: sticky fields
This commit is contained in:
Gareth Jones 2017-08-27 21:22:05 +10:00 committed by GitHub
commit d1f20e56ce

22
lib/appenders/logstashUDP.js Normal file → Executable file
View File

@ -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);
}