Skip to content
supports async logging model
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
test
.gitignore
.npmignore
LICENSE.md
Makefile
README.md
package.json

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.