1.0.1 • Published 3 years ago

@cameronhunter/debug-logger v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

@cameronhunter/debug-logger

A TypeScript decorator for classes that logs all method usages using the debug package. Logging is enabled using the DEBUG environment variable – see the debug package for details.

Examples

Simple usage

The decorator can be used directly and it will log to a namespace matching the class name it is decorating. An execution of new HelloWorld().main('World') below will result in HelloWorld main("World"); being logged.

import DebugLogging from '@cameronhunter/debug-logger';

@DebugLogging
class HelloWorld {
  main(name: string) {
    console.log(`Hello ${name}!`);
  }
}

Using a custom namespace

The decorator also accepts an optional namespace that will be used in addition to the class name it is decorating. An execution of new HelloWorld().main('World') below will result in my-debug-namespace:HelloWorld main("World"); being logged.

import DebugLogging from '@cameronhunter/debug-logger';

@DebugLogging('my-debug-namespace')
class HelloWorld {
  main(name: string) {
    console.log(`Hello ${name}!`);
  }
}

Configuring a shared logger

The decorator can be preconfigured and shared. For example, we can configure a debug logger with a custom namespace and export it for use around an application. An execution of new HelloWorld().main('World') below will result in my-namespace:HelloWorld main("World"); being logged.

import DebugLogger from '@cameronhunter/debug-logger';

const CustomLogger = DebugLogger('my-namespace');

@CustomLogger
class HelloWorld {
  main(name: string) {
    console.log(`Hello ${name}!`);
  }
}