fluent-logger
Advanced tools
Comparing version 0.2.2 to 0.2.3
@@ -16,5 +16,5 @@ var FluentSender = require('./sender').FluentSender; | ||
support: { | ||
log4jsAppender: function(options){ | ||
log4jsAppender: function(tag, options){ | ||
var log4jsSupport = require('../lib/log4js'); | ||
return log4jsSupport.appender(options); | ||
return log4jsSupport.appender(tag, options); | ||
} | ||
@@ -21,0 +21,0 @@ } |
@@ -90,5 +90,13 @@ var util = require('util'); | ||
}else{ | ||
process.nextTick(function(){ | ||
callback(); | ||
}); | ||
if( !self._socket.writable ){ | ||
self._socket.destroy(); | ||
self._socket = null; | ||
process.nextTick(function(){ | ||
self._connect(callback); | ||
}); | ||
}else{ | ||
process.nextTick(function(){ | ||
callback(); | ||
}); | ||
} | ||
} | ||
@@ -95,0 +103,0 @@ }; |
@@ -9,3 +9,9 @@ var net = require('net'); | ||
this._received = []; | ||
this._clients = {}; | ||
this._server = net.createServer(function(socket){ | ||
var clientKey = socket.remoteAddress + ":" + socket.remotePort; | ||
self._clients[clientKey] = socket; | ||
socket.on('end', function(){ | ||
delete(self._clients[clientKey]); | ||
}); | ||
var ms = new msgpack.Stream(socket); | ||
@@ -39,6 +45,10 @@ ms.on('msg', function(m){ | ||
MockFluentdServer.prototype.close = function(){ | ||
this._server.close(); | ||
this._port = null; | ||
this._received = []; | ||
MockFluentdServer.prototype.close = function(callback){ | ||
var self = this; | ||
this._server.close(function(){ | ||
callback(); | ||
}); | ||
for(var i in self._clients){ | ||
self._clients[i].destroy(); | ||
} | ||
}; | ||
@@ -51,11 +61,12 @@ | ||
callback(server, function(_callback){ | ||
// wait 100 ms and then close | ||
setTimeout(function(){ | ||
var messages = server.messages; | ||
_callback(messages); | ||
server.close(); | ||
}, 100); | ||
}); | ||
// wait 100 ms to receive all messages and then close | ||
setTimeout(function(){ | ||
var messages = server.messages; | ||
server.close(function(){ | ||
_callback(messages); | ||
}); | ||
}, 100); | ||
}); | ||
}); | ||
} | ||
}; |
{ | ||
"name": "fluent-logger", | ||
"version": "0.2.2", | ||
"version": "0.2.3", | ||
"main": "./lib/index.js", | ||
"scripts": { | ||
"test": "./node_modules/.bin/mocha --recursive" | ||
"test": "./node_modules/.bin/mocha -t 10000 --recursive" | ||
}, | ||
@@ -8,0 +8,0 @@ "author": { |
@@ -85,2 +85,32 @@ var expect = require('chai').expect; | ||
}); | ||
it('should reconnect when fluentd close the client socket suddenly', function(done){ | ||
runServer(function(server, finish){ | ||
var s = new sender.FluentSender('debug', {port: server.port}); | ||
s.emit('foo', 'bar', function(){ | ||
// connected. | ||
server.close(function(){ | ||
// waiting for the server closing all client socket. | ||
(function waitForUnwritable(){ | ||
if( !s._socket.writable ){ | ||
runServer(function(_server2, finish){ | ||
s.port = _server2.port; // in actuall case, s.port does not need to be updated. | ||
s.emit('bar', 'hoge', function(){ | ||
finish(function(data){ | ||
expect(data[0].tag).to.be.equal('debug.bar'); | ||
expect(data[0].data).to.be.equal('hoge'); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
}else{ | ||
setTimeout(function(){ | ||
waitForUnwritable(); | ||
}, 100); | ||
} | ||
})(); | ||
}); | ||
}); | ||
}); | ||
}); | ||
}); |
14051
393