mirror of
https://github.com/log4js-node/log4js-node.git
synced 2025-12-08 19:26:01 +00:00
101 lines
2.5 KiB
JavaScript
101 lines
2.5 KiB
JavaScript
'use strict';
|
|
|
|
const test = require('tap').test;
|
|
const sandbox = require('sandboxed-module');
|
|
const appender = require('../../lib/appenders/logFaces-UDP');
|
|
|
|
function setupLogging(category, options) {
|
|
const fakeDgram = {
|
|
createSocket: function (type) {
|
|
fakeDgram.type = type;
|
|
return {
|
|
send: function (buffer, start, end, port, host, cb) {
|
|
fakeDgram.buffer = buffer;
|
|
fakeDgram.start = start;
|
|
fakeDgram.end = end;
|
|
fakeDgram.port = port;
|
|
fakeDgram.host = host;
|
|
fakeDgram.cb = cb;
|
|
}
|
|
};
|
|
}
|
|
};
|
|
|
|
const fakeConsole = {
|
|
error: function (msg, err) {
|
|
this.msg = msg;
|
|
this.err = err;
|
|
}
|
|
};
|
|
|
|
const log4js = sandbox.require('../../lib/log4js', {
|
|
requires: {
|
|
dgram: fakeDgram
|
|
},
|
|
globals: {
|
|
console: fakeConsole
|
|
}
|
|
});
|
|
|
|
options.type = 'logFaces-UDP';
|
|
log4js.configure({
|
|
appenders: {
|
|
udp: options
|
|
},
|
|
categories: { default: { appenders: ['udp'], level: 'trace' } }
|
|
});
|
|
|
|
return {
|
|
logger: log4js.getLogger(category),
|
|
dgram: fakeDgram,
|
|
console: fakeConsole
|
|
};
|
|
}
|
|
|
|
test('logFaces appender', (batch) => {
|
|
batch.test('should export a configure function', (t) => {
|
|
t.type(appender.configure, 'function');
|
|
t.end();
|
|
});
|
|
|
|
batch.test('when using UDP receivers', (t) => {
|
|
const setup = setupLogging('udpCategory', {
|
|
application: 'LFS-UDP',
|
|
remoteHost: '127.0.0.1',
|
|
port: 55201
|
|
});
|
|
|
|
setup.logger.addContext('foo', 'bar');
|
|
setup.logger.addContext('bar', 'foo');
|
|
setup.logger.error('Log event #2');
|
|
|
|
t.test('an event should be sent', (assert) => {
|
|
const event = JSON.parse(setup.dgram.buffer.toString());
|
|
assert.equal(event.a, 'LFS-UDP');
|
|
assert.equal(event.m, 'Log event #2');
|
|
assert.equal(event.g, 'udpCategory');
|
|
assert.equal(event.p, 'ERROR');
|
|
assert.equal(event.p_foo, 'bar');
|
|
assert.equal(event.p_bar, 'foo');
|
|
|
|
// Assert timestamp, up to hours resolution.
|
|
const date = new Date(event.t);
|
|
assert.equal(
|
|
date.toISOString().substring(0, 14),
|
|
new Date().toISOString().substring(0, 14)
|
|
);
|
|
assert.end();
|
|
});
|
|
|
|
t.test('dgram errors should be sent to console.error', (assert) => {
|
|
setup.dgram.cb('something went wrong');
|
|
assert.equal(setup.console.msg, 'log4js.logFacesUDPAppender error sending to 127.0.0.1:55201, error: ');
|
|
assert.equal(setup.console.err, 'something went wrong');
|
|
assert.end();
|
|
});
|
|
t.end();
|
|
});
|
|
|
|
batch.end();
|
|
});
|