2 var vows = require('vows'),
3 assert = require('assert'),
4 log4js = require('../lib/log4js'),
5 sandbox = require('sandboxed-module');
7 function setupLogging(category, options) {
11 createSocket: function (type) {
13 send: function(buffer, offset, length, port, host, callback) {
14 udpSent.date = new Date();
17 udpSent.length = length;
19 udpSent.buffer = buffer;
20 callback(undefined, length);
26 var lfsModule = sandbox.require('../lib/appenders/logFacesAppender', {
31 log4js.clearAppenders();
32 log4js.addAppender(lfsModule.configure(options), category);
35 logger: log4js.getLogger(category),
40 vows.describe('logFaces UDP appender').addBatch({
41 'when logging to logFaces UDP receiver': {
43 var setup = setupLogging('myCategory', {
44 "type": "logFacesAppender",
45 "application": "LFS-TEST",
46 "remoteHost": "127.0.0.1",
54 setup.logger.warn('Log event #1');
57 'an UDP packet should be sent': function (topic) {
58 assert.equal(topic.results.host, "127.0.0.1");
59 assert.equal(topic.results.port, 55201);
60 assert.equal(topic.results.offset, 0);
61 var json = JSON.parse(topic.results.buffer.toString());
62 assert.equal(json.a, 'LFS-TEST');
63 assert.equal(json.m, 'Log event #1');
64 assert.equal(json.g, 'myCategory');
65 assert.equal(json.p, 'WARN');
67 // Assert timestamp, up to hours resolution.
68 var date = new Date(json.t);
70 date.toISOString().substring(0, 14),
71 topic.results.date.toISOString().substring(0, 14)
76 'when missing options': {
78 var setup = setupLogging('myLogger', {
79 "type": "logFacesAppender",
81 setup.logger.error('Log event #2');
84 'it sets some defaults': function (topic) {
85 assert.equal(topic.results.host, "127.0.0.1");
86 assert.equal(topic.results.port, 55201);
88 var json = JSON.parse(topic.results.buffer.toString());
89 assert.equal(json.a, "");
90 assert.equal(json.m, 'Log event #2');
91 assert.equal(json.g, 'myLogger');
92 assert.equal(json.p, 'ERROR');