log4js-json-layout
Advanced tools
Comparing version 1.0.4 to 1.0.5
@@ -6,5 +6,6 @@ /** | ||
var util = require('util'); | ||
var _ = require('lodash'); | ||
function wrapErrorsWithInspect(items) { | ||
return items.map(function (item) { | ||
return _.chain(items).map(function (item) { | ||
if ((item instanceof Error) && item.stack) { | ||
@@ -16,6 +17,6 @@ return { | ||
}; | ||
} else { | ||
} else if (!_.isObject(item)) { | ||
return item; | ||
} | ||
}); | ||
}).compact().value(); | ||
} | ||
@@ -26,6 +27,13 @@ function formatLogData(logData) { | ||
} | ||
function isObject(value) { | ||
var type = typeof value; | ||
return !!value && (type == 'object' || type == 'function'); | ||
function createDataOverlays(items) { | ||
// var data = Array.isArray(items) ? items : Array.prototype.slice.call(items); | ||
let overlay = {}; | ||
for (let item of items) { | ||
if (_.isObject(item)) { | ||
Object.assign(overlay, item); | ||
} | ||
} | ||
return overlay; | ||
} | ||
function jsonLayout(config) { | ||
@@ -43,11 +51,13 @@ function formatter(data) { | ||
} | ||
if (data.data.length === 2 && isObject(data.data[1])) { | ||
output.data = data.data[0]; // the message | ||
Object.assign(output, data.data[1]); | ||
} else if (data.data.length === 1 && data.data[0].hasOwnProperty(messageParam)) { | ||
output.data = data.data[0][messageParam]; // the message | ||
delete data.data[0][messageParam]; | ||
Object.assign(output, data.data[0]); | ||
} else if (data.data) { | ||
output.data = formatLogData(data.data); | ||
let messages = Array.isArray(data.data) ? data.data : [data.data]; | ||
if (typeof messages !== 'string' && messages.length >= 1) { | ||
if (typeof messages[0] == 'string') { | ||
output.data = formatLogData(messages) | ||
} | ||
let overlays = createDataOverlays(messages); | ||
if (overlays.hasOwnProperty(messageParam)) { | ||
output.data = overlays[messageParam]; | ||
delete overlays[messageParam]; | ||
} | ||
Object.assign(output, overlays); | ||
} | ||
@@ -54,0 +64,0 @@ if (config.include && config.include.length) { |
{ | ||
"name": "log4js-json-layout", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"description": "provides a slim and easy to use json-layout for log4js-node", | ||
@@ -25,3 +25,6 @@ "main": "index.js", | ||
"mocha": "^2.4.5" | ||
}, | ||
"dependencies": { | ||
"lodash": "^4.15.0" | ||
} | ||
} |
29
test.js
@@ -49,5 +49,23 @@ /** | ||
data.data = ['%s', 'aaa']; | ||
var output = layout({})(data); | ||
JSON.parse(output).data.should.equal('aaa'); | ||
var output = JSON.parse(layout({})(data)); | ||
output.data.should.equal('aaa'); | ||
}); | ||
it('should format many params', function () { | ||
data.data = ['%s_%s', 'aaa','bbb']; | ||
var output = JSON.parse(layout({})(data)); | ||
output.data.should.equal('aaa_bbb'); | ||
}); | ||
it('should format data + support object', function () { | ||
data.data = ['%s', 'aaa', {a: 1}]; | ||
var output = JSON.parse(layout({})(data)); | ||
output.data.should.equal('aaa'); | ||
output.a.should.equal(1); | ||
}); | ||
it('should format many params + support objects', function () { | ||
data.data = ['%s_%s', 'aaa','bbb',{a:1},{b:2}]; | ||
var output = JSON.parse(layout({})(data)); | ||
output.data.should.equal('aaa_bbb'); | ||
output.a.should.equal(1); | ||
output.b.should.equal(2); | ||
}); | ||
it('should format data when passed as message + object', function () { | ||
@@ -59,2 +77,9 @@ data.data = ['aaa', {id: 123}]; | ||
}); | ||
it('should format data when passed as message + many objects', function () { | ||
data.data = ['aaa', {id: 123}, {bb: 222}]; | ||
var output = JSON.parse(layout({})(data)); | ||
output.id.should.equal(123); | ||
output.bb.should.equal(222); | ||
output.data.should.equal('aaa') | ||
}); | ||
it('should format data when passed as object with default msg param', function () { | ||
@@ -61,0 +86,0 @@ data.data = [{id: 123, msg: 'aaa'}]; |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
51140
171
1
+ Addedlodash@^4.15.0
+ Addedlodash@4.17.21(transitive)