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

@brainbits/node-logger

Package Overview
Dependencies
Maintainers
3
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@brainbits/node-logger

Logger for node projects

  • 2.4.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
214
Maintainers
3
Weekly downloads
 
Created
Source

Logger

Installation

yarn add @brainbits/node-logger @brainbits/node-logger-formatter-monolog

or

npm install -S @brainbits/node-logger @brainbits/node-logger-formatter-monolog

Configuration

Adding a formatter

You have to add a formatter to your package.json. E. g. the monolog formatter:

"nodeLogger": {
    "formatter": "@brainbits/node-node-logger-node-logger-formatter-monolog"
}

Parameters

You can add more parameters to your "nodeLogger": {} section.

channel Channel of the logger (string)

Default: Name of your module

maxLevel Maximum level (string)

Default: info

timerLevel Timer level (string)

Default: debug

levels Levels (sorted array)

Default:

    'emergency',
    'alert',
    'critical',
    'error',
    'warning',
    'notice',
    'info', // max level default
    'debug',
]

outputs Outputs (object)

Default:

{
    emergency: 'stderr',
    warning: 'stdout',
}

plugins Plugins [Optional]

Example

"nodeLogger": {
    "plugins": [
        "@brainbits/node-node-logger-plugin-<name>"
    ]
}

formatter Module name of the formatter (see "Adding a formatter")

Environment variables

You can set your own ENV_VARS in your package.json with env(<env>, <fallback[optional]>)

Example

"nodeLogger": {
    "maxLevel": "env(LOGGER_LEVEL, info)"
}

This will take the value of LOGGER_LEVEL or "info" as fallback. The fallback is optional. If there is no suitable value the default is set.

Usage

Create a Logger instance

import { Logger } from '@brainbits/node-logger';

const logger = new Logger();
Arguments
import { Logger } from '@brainbits/node-logger';

const config = {
    maxLevel: 'error',
    level: [
        'error',
        'info',
        'debug',
    ],
    formatter: (event) => {
        console.log(event)
    }
};

const logger = new Logger(config);

First argument is a string to define your context.

Second argument is the entire configration object. You can override the configuration in your package.json here.

Default logger

import Logger from '@brainbits/node-logger';

const logger = new Logger();

const meta = {
    foo: 'bar';
};

logger.info('This is my message', meta);

Timer feature

There is a timer function logger.start(<message>)

import { logger } from '@brainbits/node-logger';

const meta = {
    foo: 'bar';
};

logger.start('timer');

//... somewhere else in your code ...

function loadAsyncShit() {
    return fetch('https://api/resource?query=blah')
        .then(result => {
            logger.stop('timer', meta);
            return result;
        };
};
// Could output: [2010-01-31 23:59:59] module.DEBUG: timer {"foo":"bar","timeMs":75} []

Anatomy

logger.<level>(<message>, <meta>)

Levels <level>

Pick one of these levels (default):

  • 0: emergency
  • 1: alert
  • 2: critical
  • 3: error
  • 4: warning
  • 5: notice
  • 6: info
  • 7: debug (default: no ouput [maxLevel])

Message <message>

Message can be a string, array or object (and Error object)

Meta <meta>

Must be an object. Used for additional context data.

logger.info('This is my message', { foo: 'bar' });

Caution: If message is an object and meta has the same property, meta will override this property.

Keywords

FAQs

Package last updated on 02 Oct 2023

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