Skip to content
Simple javascript logger for easy and scalable logging
TypeScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.gitignore
.npmignore
LICENSE
README.md
package.json
tsconfig.json
tslint.json

README.md

articulog

Simple typescript/javascript logging wrapper. Inspired by:

The goals of this project is to do the following:

  • Have a swappable typescript interface for logging
  • Have several log levels that can be adjusted dynamically
  • Have several categories of logs
  • Allow for easy crafting of different log targets
  • Enable a top level control to allow for configuring of logs dynamically, and as a group
  • Create with little to no dependencies (for simple logging)
  • Have this be useful for both browser and nodejs environments

Installation

npm install --save articulog

Usage

Get a basic console log

import {log, LoggerLevel} from 'articulog'

log.info('Hello World!');

log.setLevel(LoggerLevel.SILENT);

log.error('This won't show up');

log.setLevel(LoggerLevel.ERROR);

log.debug('This won't show up either');

log.error('This will show up');

More advanced logs

import {ConsoleLoggerFactory, LoggerLevel} from 'articulog';

ConsoleLoggerFactory.createLog({
  name: 'APILog',
  level: LoggerLevel.WARN,
  methodFactory: (rawMethod: (...msg : Array<any>) => void, methodName: string, level: LoggerLevel, loggerName: string) => {
    return (...msg : Array<any>) => {
      fetch(`http://localhost/logger?msg=${msg[0]}&methodName=${methodName}`);
      rawMethod(...msg);
    };
  }
});

Top level log control

import {LogControl, LoggerLevel}

// Sets the loggers to silent
LogControl.turnOffAllLogs();

// Sets all logs to INFO
LogControl.setAllLogsToLevel(LoggerLevel.INFO);

let logger = LogControl.getLog('APILog');
logger.error('An error occured!');

File logger

On a production nodejs application I would create a custom LoggerFactory that wraps winston functionality. I will add an example soon, but it is just a matter of creating a special factory.

Development

Local Install

npm install

Build

npm run build

Test

npm test
You can’t perform that action at this time.