Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

loglevel-mixin

Package Overview
Dependencies
Maintainers
1
Versions
69
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

loglevel-mixin

mixin to declare logging methods named after a set of log levels

  • 5.0.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
905
increased by47.63%
Maintainers
1
Weekly downloads
 
Created
Source

Build Status codecov.io Commitizen friendly downloads GitHub Issues Greenkeeper Known Vulnerabilities License minified size npm semantic-release styled with prettier

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 { defineLogLevelProperties, defineLoggerMethods } from 'loglevel-mixin';

let someObject = {
  log(severity, message) {
    console.log(`${severity} ${message}`);
  }
};

defineLoggerMethods(someObject);
defineLogLevelProperties(someObject);

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)'
);

works for ES2015 classes to

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 (optional, default undefined)

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)
  • defaultLogLevel 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

defineLogLevelProperties

Declares two properties:

Parameters

  • object Object target where the properties will be written into
  • logLevels Object Hash with all the available loglevels. Stored by there name (optional, default defaultLogLevels)
  • defaultLogLevel string the default value for the properties (optional, default defaultLogLevels.info)

Properties

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

Keywords

FAQs

Package last updated on 06 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc