Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

supports async logging model

branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md

async-logging-node

This module is trying to solve the discrepancy between the async model & the common synchronous logging model

  • Logging types: heartbeat, atomic, transaction
  • Logging params: type, level, msg, uuid, event, parent
  • Transaction: this is the key structure we're trying to restore from async events model
  • Logging proxy: part of this module builds a proxy service which is a websocket server accepting log payload as message pack
  • Logging client: the other part is a client which runs in the application runtime, connecting to websocket, and transferring the log event over
  • MonApp: optional monitoring app which can generate heartbeat logs

API

Function Description
LogCluster
require('log-cluster').LogCluster importing constructor
new LogCluster(options, emitter) constructor accepts two parameters;
LogBuffer
require('log-buffer').LogBuffer importing constructor
new LogBuffer(emitter,mapper) constructor accepts two parameters, emitter which emits 'log' events and optional mapper which can map log properties to correct format
LogListener
require('log-listener').LogListener importing constructor

Installation

npm install async-logging

Usage

Start a proxy service

var LogCluster = require("log-cluster.js").LogCluster,
    CalPublisher = require("cal-publisher.js").CalPublisher;
new LogCluster({LogPublisher:CalPublisher});

Provide a Log Publisher

var CalPublisher = exports.CalPublisher = function(emitter, calMapper, calSender, calCallback){
    //a specific publisher, could be as simple as log file appender
}

Start a client

new require("log-client").LogClient({url:""}); //url must be given

Example

Look at lib/log-server.js. You can start it by typing following commands from the root of the project

npm install
node lib/log-server.js

LogCluster constructor options

  • port: port on which the cluster will run(default 3000)
  • monPort: port of the monitoring app if any(default 3001)
  • cluster: (default true)
  • noWorders number of worker processes to create:
  • connThreshold: max number of connections to accept(default 1024)
  • ecv:
  • heartbeatInterval:
  • LogListener: defaults to 'log-listen.js'
  • LogBuffer: defaults to 'log-buffer.js'
  • LogPublisher: defautls to 'winston-publisher.js'
Something went wrong with that request. Please try again.