Miss any of our Open RFC calls?Watch the recordings here! »

cdm-logger

2.0.1 • Public • Published

cdm-logger

TypeScript NodeJs Platform

Introduction

A typescript library for Logging.

This library extends the bunyan npm with factories to create Logger instances:

  1. ConsoleLogger - create a Console logger
  2. LogstashAmqpLogger - create a Logstash feed via Amqp

Getting Started

Installation

Install via npm

npm i cdm-logger --save

Example: Logstash Amqp

import {LogstashAmqpLogger,Logger,ILogstashAmqpLoggerSettings} from "cdm-logger";
 
const settings: ILogstashAmqpLoggerSettings = {
  level: "info", // Optional: default 'info' ('trace'|'info'|'debug'|'warn'|'error'|'fatal')
  host: "localhost",
  port: 5672,
  exchange:"logs" // Optional: default 'logs'
}
 
//Optional additional Console Logger
const consoleSettings: IConsoleLoggerSettings = {
  level: "trace",
  mode: "short"
}
 
const logger: Logger = LogstashAmqpLogger.create("<app name>", settings, consoleSettings);
 
 
// Register 'logger' with IoC

Example: Console

import {ConsoleLogger,Logger,IConsoleLoggerSettings} from "cdm-logger";
 
const settings: IConsoleLoggerSettings = {
  level: "info", // Optional: default 'info' ('trace'|'info'|'debug'|'warn'|'error'|'fatal')
  mode: "short" // Optional: default 'short' ('short'|'long'|'dev'|'raw')
}
 
const logger: Logger = ConsoleLogger.create("<app name>", settings);
 
// or create a logger with default values (in 'short' mode and at 'info' level)
const defaultLogger: Logger = ConsoleLogger.create("<app name>");
 
// or create a logger with instance of the class
const defaultLogger: Logger = ConsoleLogger.create(this);
 
// Register 'logger' with IoC
describe("Console Logger using inversify", () => {
 
  @injectable()
  class TestClass {
    constructor(@inject("logger") private logger: Logger) {
 
    }
    test() {
      this.logger.info("test")
    }
  }
  const container = new Container();
  const consoleLogger = ConsoleLogger.create("ioc")
  container.bind<Logger>("logger").toConstantValue(consoleLogger)
  container.bind<TestClass>("TestClass").to(TestClass)
 
  it("should be able to create a TRACE instance", () => {
 
    const testClass = container.get<TestClass>("TestClass")
    testClass.test();
  });
 
})

Consumed Libraries

bunyan

Bunyan Logger

Contributing

Getting started

Install node_modules via npm

npm i

Install typings

typings install

Build the project (using typescript compiler)

npm run build

Install

npm i cdm-logger

DownloadsWeekly Downloads

2

Version

2.0.1

License

MIT

Last publish

Collaborators

  • avatar