0.0.3 • Published 8 years ago

lekkerapps.logging v0.0.3

Weekly downloads
2
License
Apache-2.0
Repository
github
Last release
8 years ago

logging

A simple and flexible javascript logging utility

Motivation

Looking across several logging utilities available didn't find one that matched the following combination for my projects needs:

  • Singleton import of the logger (configure and use across the project via only module import)
  • Direct invocation of native browser console logging method (allow to see correct line number for transpiled codes)
  • Create custom logger (with prefix)
  • Definition of custom appender
  • Update level easily (disabled levels are binded directly to a no operation function, thus minimal overhead from logger)
  • Having single logging interface, unwanted logging level can be removed from source at 'transpilation' time

Installation

  $ npm install lekkerapps.logging

Usage and documentation

The Logger can be used as a singleton with the benefit of module loading

  import Logger from 'logger';

By default the logger is configured with Level = WARN.
The logging level can be configured:

  import Logger from 'logger';
  import {Levels} from 'logger';
  ...

  Logger.level = Levels.DEBUG;

New instance of Logger can also be created

  import Logger from 'logger';
  ...

  let logger = new Logger('custom');
  logger.debug('custom logger');

Custom loggers will have a prefix for all log messages. With the former example, the log output will be:

custom custom logger

Custom appender can also be defined

  export class CustomAppender {
    get trace() {
      return this._trace;
    }

    get debug() {
      return this._debug;
    }

    get info() {
      return this._info;
    }

    get warn() {
      return this._warn;
    }

    get error() {
      return this._error;
    }

    get binding() {
      return this;
    }

    _trace() {
      // process arguments
      // arguments[0] is the prefix
    }
    ...
  }

Using the custom appender

  import {Logger} from 'logger';
  import {CustomAppender} from 'custom-appender';
  ...

  let logger = new Logger('Custom', new CustomAppender());
  logger.trace('logger initialized');

License

Copyright © 2016 Ashley G Ramdass agramdass@gmail.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.