socket.io-logger

Simple logger middleware for socket.io.

Usage no npm install needed!

<script type="module">
  import socketIoLogger from 'https://cdn.skypack.dev/socket.io-logger';
</script>

README

Build Status NPM version David DM

Simple logger middleware for socket.io.

$ npm install socket.io-logger

var fs = require('fs');
var io = require('socket.io')(3000);
var options = {stream: fs.createWriteStream('/var/log/events.log',{flags:'a'}) };
var logger = require('socket.io-logger')(options);
io.use(logger);

Features

  • Data is flattened with flat.
  • Customized formatting support.
  • Plugable interface to use with your favorite logger packages.

API

Logger

var Logger = require('socket.io-logger')();

Logger

io.use(Logger());

By default the logger middleware will write to stdout.

Logger#(options:Object)

var options = { 
  stream: fs.createWriteStream('/var/log/events.log', {flags:'a'}) 
  format: function (sock, args) { return { sock:sock.id, args: args}; }
};
io.use(Logger(options));

You can use anything as long as the stream has a write method.

var options = {
  stream: {
    write: function (data) {
      console.log(data);
    }
  }
};
io.use(Logger(options));

Logger#stream (stream:Object)

The stream must have a write method.

var stream = fs.createWriteStream('/var/log/events.log', {flags:'a'});
var logger = Logger();
logger.stream(stream);
io.use(logger);

Logger#format (format:Function)

Set a customized function to manipulate the data that will be serialized.

var format = function (sock, args) {
  return {
    sock: sock.id,
    name: args.shift(),
    data: args
  };
};

var logger = Logger();
logger.format(format);
io.use(logger);

Installation and Environment Setup

Install node.js (See download and install instructions here: http://nodejs.org/).

Clone this repository

> git clone git@github.com:turbonetix/socket.io-logger.git

cd into the directory and install the dependencies

> cd socket.io-logger
> npm install && npm shrinkwrap --dev

Running Tests

Install coffee-script

> npm install coffee-script -g

Tests are run using grunt. You must first globally install the grunt-cli with npm.

> sudo npm install -g grunt-cli

Unit Tests

To run the tests, just run grunt

> grunt spec

TODO