diff --git a/lib/appenders/gelf.js b/lib/appenders/gelf.js index e3df4f1..eca067e 100644 --- a/lib/appenders/gelf.js +++ b/lib/appenders/gelf.js @@ -48,11 +48,14 @@ function gelfAppender (layout, host, port, hostname, facility) { host = host || 'localhost'; port = port || 12201; hostname = hostname || require('os').hostname(); - facility = facility || 'nodejs-server'; layout = layout || layouts.messagePassThroughLayout; var defaultCustomFields = customFields || {}; - + + if(facility) { + defaultCustomFields['_facility'] = facility; + } + var client = dgram.createSocket("udp4"); process.on('exit', function() { @@ -98,11 +101,10 @@ function gelfAppender (layout, host, port, hostname, facility) { addCustomFields(loggingEvent, msg); msg.short_message = layout(loggingEvent); - msg.version="1.0"; + msg.version="1.1"; msg.timestamp = msg.timestamp || new Date().getTime() / 1000; // log should use millisecond msg.host = hostname; msg.level = levelMapping[loggingEvent.level || levels.DEBUG]; - msg.facility = facility; return msg; } diff --git a/test/gelfAppender-test.js b/test/gelfAppender-test.js index 64750b5..6b33b72 100644 --- a/test/gelfAppender-test.js +++ b/test/gelfAppender-test.js @@ -73,7 +73,7 @@ var vows = require('vows') console: fakeConsole } }); - + log4js.clearAppenders(); log4js.addAppender(appender.configure(options || {}), category || "gelf-test"); return { @@ -87,7 +87,7 @@ var vows = require('vows') }; vows.describe('log4js gelfAppender').addBatch({ - + 'with default gelfAppender settings': { topic: function() { var setup = setupLogging(); @@ -115,10 +115,9 @@ vows.describe('log4js gelfAppender').addBatch({ return message; }, 'should be in the gelf format': function(message) { - assert.equal(message.version, '1.0'); + assert.equal(message.version, '1.1'); assert.equal(message.host, require('os').hostname()); assert.equal(message.level, 6); //INFO - assert.equal(message.facility, 'nodejs-server'); assert.equal(message.short_message, 'This is a test'); } } @@ -165,7 +164,7 @@ vows.describe('log4js gelfAppender').addBatch({ }, 'should pick up the options': function(message) { assert.equal(message.host, 'cheese'); - assert.equal(message.facility, 'nonsense'); + assert.equal(message._facility, 'nonsense'); } } }, @@ -245,11 +244,11 @@ vows.describe('log4js gelfAppender').addBatch({ }, 'should pick up the options': function(message) { assert.equal(message.host, 'cheese'); - assert.equal(message.facility, 'nonsense'); + assert.equal(message._facility, 'nonsense'); assert.equal(message._every1, 'Hello every one'); // the default value assert.equal(message._every2, 'Overwritten!'); // the overwritten value assert.equal(message._myField, 'This is my field!'); // the value for this message only - assert.equal(message.short_message, 'Just testing.'); // skip the field object + assert.equal(message.short_message, 'Just testing.'); // skip the field object } } }