mirror of
https://github.com/log4js-node/log4js-node.git
synced 2025-12-08 19:26:01 +00:00
97 lines
2.6 KiB
JavaScript
97 lines
2.6 KiB
JavaScript
"use strict";
|
|
var vows = require('vows'),
|
|
assert = require('assert'),
|
|
log4js = require('../lib/log4js'),
|
|
sandbox = require('sandboxed-module');
|
|
|
|
function setupLogging(category, options) {
|
|
var udpSent = {};
|
|
|
|
var fakeDgram = {
|
|
createSocket: function (type) {
|
|
return {
|
|
send: function(buffer, offset, length, port, host, callback) {
|
|
udpSent.date = new Date();
|
|
udpSent.host = host;
|
|
udpSent.port = port;
|
|
udpSent.length = length;
|
|
udpSent.offset = 0;
|
|
udpSent.buffer = buffer;
|
|
callback(undefined, length);
|
|
}
|
|
};
|
|
}
|
|
};
|
|
|
|
var lfsModule = sandbox.require('../lib/appenders/logFacesAppender', {
|
|
requires: {
|
|
'dgram': fakeDgram
|
|
}
|
|
});
|
|
log4js.clearAppenders();
|
|
log4js.addAppender(lfsModule.configure(options), category);
|
|
|
|
return {
|
|
logger: log4js.getLogger(category),
|
|
results: udpSent
|
|
};
|
|
}
|
|
|
|
vows.describe('logFaces UDP appender').addBatch({
|
|
'when logging to logFaces UDP receiver': {
|
|
topic: function() {
|
|
var setup = setupLogging('myCategory', {
|
|
"type": "logFacesAppender",
|
|
"application": "LFS-TEST",
|
|
"remoteHost": "127.0.0.1",
|
|
"port": 55201,
|
|
"layout": {
|
|
"type": "pattern",
|
|
"pattern": "%m"
|
|
}
|
|
});
|
|
|
|
setup.logger.warn('Log event #1');
|
|
return setup;
|
|
},
|
|
'an UDP packet should be sent': function (topic) {
|
|
assert.equal(topic.results.host, "127.0.0.1");
|
|
assert.equal(topic.results.port, 55201);
|
|
assert.equal(topic.results.offset, 0);
|
|
var json = JSON.parse(topic.results.buffer.toString());
|
|
assert.equal(json.a, 'LFS-TEST');
|
|
assert.equal(json.m, 'Log event #1');
|
|
assert.equal(json.g, 'myCategory');
|
|
assert.equal(json.p, 'WARN');
|
|
|
|
// Assert timestamp, up to hours resolution.
|
|
var date = new Date(json.t);
|
|
assert.equal(
|
|
date.toISOString().substring(0, 14),
|
|
topic.results.date.toISOString().substring(0, 14)
|
|
);
|
|
}
|
|
},
|
|
|
|
'when missing options': {
|
|
topic: function() {
|
|
var setup = setupLogging('myLogger', {
|
|
"type": "logFacesAppender",
|
|
});
|
|
setup.logger.error('Log event #2');
|
|
return setup;
|
|
},
|
|
'it sets some defaults': function (topic) {
|
|
assert.equal(topic.results.host, "127.0.0.1");
|
|
assert.equal(topic.results.port, 55201);
|
|
|
|
var json = JSON.parse(topic.results.buffer.toString());
|
|
assert.equal(json.a, "");
|
|
assert.equal(json.m, 'Log event #2');
|
|
assert.equal(json.g, 'myLogger');
|
|
assert.equal(json.p, 'ERROR');
|
|
}
|
|
}
|
|
|
|
}).export(module);
|