1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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);
- }
- };
- };
|