1.2.0 • Published 5 years ago

brewery-log v1.2.0

Weekly downloads
31
License
MIT
Repository
-
Last release
5 years ago

brewery-log

A Simplified Multi-transport and Structured Logging Library for Brewery Project

Table of Contents

Install

npm install brewery-log

Usage

RECOMMENDED: create your own logger definition

const BreweryLog = require('brewery-log');

const logger = BreweryLog.initLogger({
  level: 'info', // Default log level for transports with no specified level
  transports: [
    { transport: 'Console' }, // Prints log to console
    { transport: 'File', filename: 'debug.log', level: 'debug' }, // Writes log with level `debug` and below to `debug.log`
    { transport: 'File', filename: 'error.log', level: 'error' } // Writes error logs to `error.log`
  ]
});

logger.log('info', { message: 'Welcome to the Brewery' });

DEFAULT: you may also log it directly using the default require('brewery-log'), but this only logs to default stdout and stderr with logging level set to info

const logger = require('brewery-log');
logger.log('info', { message: 'Welcome to the Brewery' });

API

BreweryLog

.initLogger([config]) - Initialize the Brewery Logger

  • config ( Type: Object, Properties: level, transports )

.add([logger]) - Adds a new logger instance to our loggers

  • logger ( Type: Object, Properties: transport, level, filename)
  • Note: filename should be set if transport is File, see Transports.

.setLevel([level], [details]) - Set Logging Level for all logger instances

  • level ( Type: String )

.log([level], [details]) - Sends the log message to all Logger Instances for logging

  • level ( Type: String )
  • details ( Type: Object|String )

.error([details]) - Logs a message with error level

  • details ( Type: Object|String )

.warn([details]) - Logs a message with warn level

  • details ( Type: Object|String )

.info([details]) - Logs a message with info level

  • details ( Type: Object|String )

.verbose([details]) - Logs a message with verbose level

  • details ( Type: Object|String )

.debug([details]) - Logs a message with debug level

  • details ( Type: Object|String )

Logging Levels

Logging levels conform to the severity ordering specified by RFC5424: severity of all levels is assumed to be numerically ascending from most important to least important.

NOTE: Usage of unknown log level will not be logged and will log an Error

const levels = { 
  error: 0, 
  warn: 1, 
  info: 2, 
  verbose: 3, 
  debug: 4
};

Transports

The core transports that are currently available to BreweryLog are:

  • Console - writes the log to the default stdout and stderr

USAGE

const logger = BreweryLog.initLogger({
  transports: [{ transport: 'Console', level: 'info' }]
});

logger.log('info', { message: 'Welcome to the Brewery' });

OUTPUT

{ datetime: 2018-06-21T08:05:55.266Z,
  level: 'info',
  details: { message: 'Welcome to the Brewery' } }
  • File - writes the log to the specified file with appended datetime(YYYY-MM-DD) on the filename

USAGE

const logger = BreweryLog.initLogger({
  transports: [
    transport: 'File', filename: 'debug.log', level: 'debug'
  ],
});

logger.log('info', { message: 'Welcome to the Brewery' });

OUTPUT

{"datetime":"2018-06-21T08:05:55.266Z","level":'info',"details":{"message":"Welcome to the Brewery"}}

Contributors

  • Ronald dela Cruz
  • James Levin Calado

License

MIT © Stratpoint Technologies Inc.