Socket
Socket
Sign inDemoInstall

@openfn/logger

Package Overview
Dependencies
29
Maintainers
4
Versions
21
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @openfn/logger

Cross-package logging utility


Version published
Weekly downloads
1.3K
decreased by-24.24%
Maintainers
4
Install size
2.61 MB
Created
Weekly downloads
 

Readme

Source

@openfn/logger

A logging service which can be configured and shared to easily run with other @openfn packages.

The fundamental idea of the logger is to print namespaced output to the console, with powerful filtering controls. This allows different components to log within a single command, possibly using fine-grained output options.

Features

  • Supports the standard console API (well, not yet)
  • Filtered output in the terminal
  • Pluggable emitter layer
  • Mock logger is great for unit tests

Levels

The logger is build around 4 filter levels.

Packages in kit should log as much as they possibly can using the following guidelines:

default - Defaults for all the family. Prints what the user absolutely has to know. Includes notification of high level process completions. Also shows errors and warnings. info - For power users. Shows everything default plus generally interesting high-level information about what's happening internally. debug - For devs debugging - really detailed output about stepping into and out of major operations. Includes data dumps. none - don't show any log output

JSON Output

Set the json object to a truthy value to output all logs as JSON objects of the following structure:

{ level: 'info', name: 'CLI', message: ['Loaded adaptor'] }

Usage

Import and create a logger:

import createLogger from '@openfn/logger'
const logger = createLogger();

You can pass in a name and filter log levels:

createLogger("my logger", { level: 'debug' });

Then just call the logger with whatever you like!

logger.log('abc');

You can log to the following levels:

❯ debug ℹ info ✔ success ♦ always ⚠ warn ✘ error

For more options see src/options.ts.

Mock logger

In unit testing it's helpful to track log output.

Pass the mock logger where Logger is accepted. It won't print anything to stdout, but will expose _last, _history and _parse() on the logger object.

_last returns the last logger output, as an array of the form [level, namespace, icon, message...] (as applicable).

_hisory returns an array of all _last messages (oldest at index 0)

_parse will intelligently parse a _last message and return an object with named properties. This takes into account the log options so you don't have to work out what's what.

const { level, icon, namespace, message } = logger._parse(logger._last);

FAQs

Last updated on 04 Mar 2024

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc