12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- const debug = require('debug')('log4js:tcp-server');
- const net = require('net');
- const clustering = require('../clustering');
- const LoggingEvent = require('../LoggingEvent');
- const DELIMITER = '__LOG4JS__';
- exports.configure = (config) => {
- debug('configure called with ', config);
- const server = net.createServer((socket) => {
- let dataSoFar = '';
- const send = (data) => {
- if (data) {
- dataSoFar += data;
- if (dataSoFar.indexOf(DELIMITER)) {
- const events = dataSoFar.split(DELIMITER);
- if (!dataSoFar.endsWith(DELIMITER)) {
- dataSoFar = events.pop();
- } else {
- dataSoFar = '';
- }
- events
- .filter((e) => e.length)
- .forEach((e) => {
- clustering.send(LoggingEvent.deserialise(e));
- });
- } else {
- dataSoFar = '';
- }
- }
- };
- socket.setEncoding('utf8');
- socket.on('data', send);
- socket.on('end', send);
- });
- server.listen(config.port || 5000, config.host || 'localhost', () => {
- debug(`listening on ${config.host || 'localhost'}:${config.port || 5000}`);
- server.unref();
- });
- return {
- shutdown: (cb) => {
- debug('shutdown called.');
- server.close(cb);
- },
- };
- };
|