Socket
Socket
Sign inDemoInstall

fluent-logger

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fluent-logger - npm Package Compare versions

Comparing version 0.1.0 to 0.2.0

5

lib/sender.js
var util = require('util');
var EventEmitter = require('events').EventEmitter;
var pack = require('../vendor/uupa-js/msgpack').pack;
var pack = require('msgpack').pack;
var net = require('net');

@@ -14,2 +14,3 @@

this.verbose = this.verbose || false;
this._timeResolution = options.milliseconds ? 1 : 1000;
this._socket = null;

@@ -64,3 +65,3 @@ this._sendQueue = []; // queue for items waiting for being sent.

var tag = [self.tag, label].join('.');
var time = (new Date()).getTime() / 1000;
var time = (new Date()).getTime() / this._timeResolution;
var packet = [tag, time, data];

@@ -67,0 +68,0 @@ return {

129

lib/testHelper.js
var net = require('net');
var fs = require('fs');
var spawn = require('child_process').spawn;
var configPath = require('path').join(__dirname, '../test/fluent-config/fluent.conf');
var fluentdPath = process.env['FLUENTD_PATH'] || "fluentd";
var fluentd = null;
var msgpack = require('msgpack');
function spawnFluentDaemon(callback){
var s = net.createServer();
// grab a random port
s.listen(function(){
var port = s.address().port;
var configPath = '/tmp/fluent-logger-node-test.' + port + '.conf';
s.on('close', function(){
var data = ["<source>",
"type forward",
"port " + port,
"</source>",
"<match debug.**>",
"type stdout",
"</match>"].join('\n');
fs.writeFileSync(configPath, data);
var fluentd = spawn(fluentdPath, ['-c', configPath]);
process.on('exit', function(){
if( fluentd && fluentd.exitCode === null ){
console.error('fluentd process remains. force to kill.');
try{
fluentd.kill();
}catch(e){
console.error(e);
}
}
function MockFluentdServer(){
var self = this;
this._port = null;
this._received = [];
this._server = net.createServer(function(socket){
var ms = new msgpack.Stream(socket);
ms.on('msg', function(m){
self._received.push({
tag: m[0],
time: m[1],
data: m[2]
});
callback(port, fluentd);
});
s.close();
});
}
module.exports = {
/**
* fluentd process utility
*
* fluentd(function(port, end){
* // send contents to port
* // ...
*
* end(function(receivedData){
* // check receivedData array
* receivedData[i].tag // -> tag
* receivedData[i].record // -> tag
* });
*
* });
*
*/
MockFluentdServer.prototype.__defineGetter__('port', function(){
return this._port;
});
fluentd: function(ready){
spawnFluentDaemon(function(port, fluentd){
var lines = [];
var s = "";
function finish(callback){
fluentd.kill();
fluentd.on('exit', function(){
callback(lines);
});
};
MockFluentdServer.prototype.__defineGetter__('messages', function(){
return this._received;
});
fluentd.stdout.on('data', function(data){
// process.stdout.write(data.toString());
s += data.toString();
if( s.indexOf('\n') > 0 ){
var l = s.split('\n'); // line0, line1, ..., chunk
var line = '';
for(var i=0; i < l.length - 1; i++){
line = l[i];
if( line.match(/listening fluent socket/ig) ){
process.nextTick(function(){
ready(port, finish);
});
}
if( line.match(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} \+\d{4} (.+): (.+)$/) ){
try{
lines.push({
tag: RegExp.$1, data: JSON.parse(RegExp.$2)
});
}catch(e){
console.error(e + ' ' + RegExp.$2);
}
}
}
s = l[l.length-1];
}
MockFluentdServer.prototype.listen = function(callback){
var self = this;
this._server.listen(function(){
self._port = self._server.address().port;
callback();
});
};
MockFluentdServer.prototype.close = function(){
this._server.close();
this._port = null;
this._received = [];
};
module.exports = {
runServer: function(callback){
var server = new MockFluentdServer();
server.listen(function(){
callback(server, function(_callback){
// wait 100 ms and then close
setTimeout(function(){
var messages = server.messages;
_callback(messages);
server.close();
}, 100);
});
fluentd.stderr.on('data', function(data){
console.error(data.toString());;
});
});
}
};
{
"name": "fluent-logger",
"version": "0.1.0",
"version": "0.2.0",
"main": "./lib/index.js",
"scripts": {
"test": "./node_modules/.bin/mocha --recursive"
},
"author": {

@@ -17,5 +20,7 @@ "name": "Yohei Sasaki",

"chai": "",
"log4js": ""
"log4js": "",
"async": "",
"msgpack": ""
},
"keywords": ["logger", "fluent"]
}
var expect = require('chai').expect;
var log4jsSupport = require('../lib/log4js');
var log4js = require('log4js');
var fluentd = require('../lib/testHelper').fluentd;
var runServer = require('../lib/testHelper').runServer;

@@ -23,4 +23,4 @@ log4js.restoreConsole();

it('should send log records', function(done){
fluentd(function(port, finish){
var appender = log4jsSupport.appender('debug', {port: port});
runServer(function(server, finish){
var appender = log4jsSupport.appender('debug', {port: server.port});
log4js.addAppender(appender);

@@ -27,0 +27,0 @@ var logger = log4js.getLogger('mycategory');

var expect = require('chai').expect;
var sender = require('../lib/sender');
var fluentd = require('../lib/testHelper').fluentd;
var runServer = require('../lib/testHelper').runServer;
var async = require('async');
describe("FluentSender", function(){
it('shoud send records', function(done){
fluentd(function(port, finish){
var s1 = new sender.FluentSender('debug', { port: port });
it('should send records', function(done){
runServer(function(server, finish){
var s1 = new sender.FluentSender('debug', { port: server.port });
var emits = [];
function emit(k){
emits.push(function(done){ s1.emit('record', k, done); });
}
for(var i=0; i<10; i++){
(function(k){
emits.push(function(done){ s1.emit('record', k, done); });
})(i);
emit(i);
}

@@ -44,4 +45,4 @@ emits.push(function(){

it('should assure the sequence.', function(done){
fluentd(function(port, finish){
var s = new sender.FluentSender('debug', {port: port});
runServer(function(server, finish){
var s = new sender.FluentSender('debug', {port: server.port});
s.emit('1st record', '1st data');

@@ -68,4 +69,4 @@ s.emit('2nd record', '2nd data');

expect(err.code).to.be.equal('ECONNREFUSED');
fluentd(function(port, finish){
s.port = port;
runServer(function(server, finish){
s.port = server.port;
s.emit('2nd record', '2nd data');

@@ -85,3 +86,3 @@ s.end('last record', 'last data', function(){

});
});
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc