Awesome
@cdm-logger
TypeScript NodeJs Platform
Introduction
A typescript library for Logging.
This library extends the bunyan
npm with factories to create Logger instances:
- @cdm-logger/server: ConsoleLogger - create a Console logger
- @cdm-logger/amqp: LogstashAmqpLogger - create a Logstash feed via Amqp
- @cdm-logger/client: ClientLogger - create a browser Console logger
Getting Started
Installation
Install via npm
npm i @cdm-logger/<module> --save
Example: Logstash Amqp
import {LogstashAmqpLogger,ILogstashAmqpLoggerSettings} from "@cdm-logger/amqp";
import * as Logger from "bunyan";
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,IConsoleLoggerSettings} from "@cdm-logger/server";
import * as Logger from "bunyan";
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
Build the project (using typescript compiler)
npm run lerna