New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

logforth

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

logforth

Simple logging framework for NodeJS

latest
Source
npmnpm
Version
1.3.0
Version published
Maintainers
1
Created
Source

Logforth

Release

This is a simple logging framework specifically build for NodeJS.

I have been using several logging frameworks in the past, but I had always issues with one or another quirks of each. After comparing how each of them works, as well as looking for more inspiration in the Rust logging frameworks I came up with the design for this logging library.

Logforth supports both pretty printing for development and ndjson output for production. Each log entry has a mandatory message and optional attributes. Attributes are included as-is in ndjson output and pretty printed in development.

Installation

npm

npm i logforth

pnpm

pnpm add logforth

Usage

First you want to instantiate a new instance of the logger:

import {Logger} from "logforth";

const logger = new Logger();
logger.info("First logger test");

Min log level

By default, Logforth will log all events. You can limit this through the minLevel option:

import {Logger, LogLevel} from "logforth";

const logger = new Logger({ minLevel: LogLevel.Info });

In order to disable logging completely you can pass disableLogging to minLevel:

import {Logger, disableLogging} from "logforth";

const logger = new Logger({ minLevel: disableLogging });

Pretty printing

In development, you might prefer to see pretty printed log message. A simple switch between production and development could look like this:

import {Logger, NdJsonTransport, PrettyTransport} from "logforth";

const logger = new Logger({
    transport: process.env.NODE_ENV === "production"
        ? new NdJsonTransport()
        : new PrettyTransport()
});

Attributes

You can pass arbitrary attributes to each log entry:

logger.info("I contain attributes", { foo: "bar" });

In ndjson output they will be inlined with the rest of the log entry. Thus, you must not use the following attribute names: time, level and msg.

Default attributes

If you want to have specific attributes always present, e.g. the hostname of the running process, you can include this in the constructor:

const logger = new Logger({ attributes: { "hostname": "foo" } });

Context aware logging

Logforth supports logging in context aware situation, for instance when you want to keep track of a request ID. You can do so through the withContext() method. The following example demonstrates how to do this in Koa:

koaApp.use((context, next) => {
    return logger.withContext({ requestId: "foo" }, next);
});

Keywords

node

FAQs

Package last updated on 01 Feb 2026

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