Skip to content

Brickflow/brickflow-logger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 

Repository files navigation

brickflow-logger

brickflow-logger is a logger around winston, which aims to be a complete logging solution for node/express apps.

Usage

    var metrics = require('brickflow-logger')({
      logstash: { host, port, ... },
      amqp: { connection: require('amqp').createConnection({ ... }) }
    });
    
    var logger = metrics.createTracker('loggerName');
    logger.info('eventName', {
      some: 'options', 
      and: { it: ['canBe', 'nested'] } 
    });
    // => info: eventName url=undefined, ip=null, eventType=loggerName, 
    //    affiliateID=undefined, distinct_id=undefined, some=options, 
    //    and.it.0=canBe, and.it.1=nested

Time measurement features

Create a time tracker and track some time:

    var metrics = require('brickflow-logger')({...});
    var tracker = createTimeTracker('trackerName');    
    
    var measureDuration = tracker.time('you-name-it') // Starts the timer
    
    var lapInfo = measureDuration.lap('firstStepComplete', {some: 'moreInfo'});
    
    measureDuration.lap('allStepsComplete');
    
    var durationLogger = measureDuration.end(); // ends the timer
    var durationLogger = measureDuration.timeEnd('you-may-name-it') // same

At this point, durationLogger behaves as a logger (has info, error, ...) except that it automatically logs the durations and dates based on the names you give and also contains the measured information, if you want to inspect what has happened.

    durationLogger.key === 'you-name-it'
    durationLogger.info('you-may-name-it-by-default', {optional: 'more info'});

Funnel

createFunnelTracker is similar, automatically logs when you call lap. It can also be used with the more intutive start-step-end aliases.

    var metrics = require('brickflow-logger')({...});
    var tracker = metrics.createFunnelTracker('somethingFunnel');
    var funnel = tracker.start('funnelName', {distinctRandom: 4});
    funnel.step('stepName'); // alias for ``lap()``
    funnel.step('happening', {optionalAdditionalLogInfo: true});
    funnel.end() // automatically logs a summary called 'funnelName'
    funnel.end(false) // end silently

About

Hey y'all! Yet another logging library.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published