loglevel-mixin

    6.0.5 • Public • Published

    npm License minified size downloads GitHub Issues Build Status Styled with prettier Commitizen friendly Known Vulnerabilities Coverage Status

    loglevel-mixin

    Injects methods named after a set of logLevels which are only forwarding messages. If the current logLevel is higher or equal to the logLevel the name of the called method reflects.

    So the model object itself can be used as a logger and the log level is directly attaches to the model

    usage

    import { LogLevelMixin } from 'loglevel-mixin';
    
    const LoggingEnabledClass = LogLevelMixin(
      class BaseClass {
        log(level, message) {
          console.log(`${level} ${message}`);
        }
      }
    );
    
    const someObject = new LoggingEnabledClass();
    
    someObject.logLevel = 'error';
    someObject.info(
      severity => 'my info message (not reported since logLevel is error)'
    );
    someObject.logLevel = 'info';
    someObject.info(
      severity => 'my info message (reported since logLevel is now info)'
    );

    install

    With npm do:

    npm install loglevel-mixin

    API

    Table of Contents

    Logger

    Type: Function

    Properties

    Loglevel

    Type: Object

    Properties

    defaultLogLevels

    default log levels

    • trace
    • debug
    • info
    • notice
    • warn
    • error
    • crit
    • alert

    declareLevels

    Generate the loglevel objects out of a list of log level names.

    Parameters

    • list Array<string> A list of log level names. The last name in the list will become the one with the highest priority.

    Returns Object levels object a hash with all the loglevels. Stored by there name.

    defineLoggerMethods

    Adds logging methods to an existing object. For each loglevel a method with the name of the log level will be created.

    Parameters

    • object Object target where to assign properties to
    • logLevels Object Hash with all the available loglevels. Stored by there name (optional, default defaultLogLevels)
    • theFunction Logger to be added under the loglevel name. This function will only be called if the current loglevel is greater equal the log level of the called logging function. By default a method log(level,message) will be used

    Examples

    defineLoggerMethods( obj)
    obj.info('info entry'); // will redirect to theFunction if obj.loglevel is at least info
    obj.error('error entry'); // will redirect to theFunction if obj.loglevel is at least error

    Returns undefined

    LOGLEVEL

    symbol holding the actual logLevel inside of the target object

    LogLevelMixin

    Parameters

    • superclass class class to be extendet
    • logLevels Object Object with all the available loglevels. Stored by their name (optional, default defaultLogLevels)
    • initialLogLevel string the default value for the logLevel property (optional, default defaultLogLevels.info)

    Examples

    import { LogLevelMixin } = from 'loglevel-mixin';
    class BaseClass {
      log(level, message) { console.log(`${level} ${message}`); }
    }
    class LoggingEnabledClass extends LogLevelMixin(BaseClass) {
    }

    Returns class newly created class ready to be further extendet/used

    makeLogEvent

    Helper function to aggregate values into a log event

    Parameters

    • severity string log severity
    • arg (string | Object) original log message - level may be overwritten
    • args Object? additional values to be merged into the final log event - values have precedence

    Returns Object suitable for log event processing

    license

    BSD-2-Clause

    Install

    npm i loglevel-mixin

    DownloadsWeekly Downloads

    270

    Version

    6.0.5

    License

    BSD-2-Clause

    Unpacked Size

    15.4 kB

    Total Files

    4

    Last publish

    Collaborators

    • arlac77