🚨 Latest Research:Tanstack npm Packages Compromised in Ongoing Mini Shai-Hulud Supply-Chain Attack.Learn More
Socket
Book a DemoSign in
Socket

pretty-logger-js

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
This package has malicious versions linked to the ongoing "North Korea’s Contagious Interview Campaign" supply chain attack.

Affected versions:

1.0.11.0.2
View campaign page

pretty-logger-js

Lightweight, customizable Node.js logging module with multiple transports and formatters.

latest
npmnpm
Version
1.0.2
Version published
Weekly downloads
57
67.65%
Maintainers
1
Weekly downloads
 
Created
Source

pretty-logger-js

A lightweight, logging module that provides a plug-in style transmission and formatter.

Features

  • Log levels: debuginfowarnerrorsilent
  • Formatters: plain text, colorized (dev), and JSON (production)
  • Transports: Console, File (with rotation), HTTP
  • Child loggers: inherit config, add scoped metadata
  • Runtime control: change level or add/remove transports on the fly
  • No external dependencies

Quick start

const { logger } = require('./pretty-logger-js');

logger.info('Server started', { port: 3000 });
logger.warn('High memory', { mb: 512 });
logger.error('DB failed', { host: 'localhost' });

Set the minimum level via the LOG_LEVEL environment variable (default: info):

LOG_LEVEL=debug node app.js

Custom logger

const {
  Logger,
  createConsoleTransport,
  createFileTransport,
  colorFormatter,
  jsonFormatter,
} = require('./pretty-logger-js');

const logger = new Logger({
  level: 'debug',
  name:  'my-app',          // added to every log entry's meta
  transports: [
    createConsoleTransport({ formatter: colorFormatter }),
    createFileTransport({
      filePath:  './logs/app.log',
      formatter: jsonFormatter,
      maxBytes:  10 * 1024 * 1024,  // 10 MB → then rotate
      maxFiles:  5,                  // keep 5 rotated files
    }),
  ],
});

Child loggers

Inherit all settings but inject extra metadata into every entry:

// In your request middleware:
const reqLogger = logger.child({ requestId: req.id, userId: req.user.id });
reqLogger.info('Request received', { method: req.method, path: req.path });
// → meta always contains requestId and userId

HTTP transport

Send logs to an external endpoint (e.g. a log aggregator):

const { createHttpTransport } = require('./pretty-logger-js');

const logger = new Logger({
  transports: [
    createHttpTransport({
      url:     'https://logs.example.com/ingest',
      headers: { Authorization: 'Bearer MY_TOKEN' },
      levels:  ['error', 'warn'],   // only send errors and warnings
      timeout: 3000,
    }),
  ],
});

Runtime control

// Silence all logs (e.g. in tests)
logger.setLevel('silent');

// Re-enable
logger.setLevel('info');

// Add a transport after creation
logger.addTransport(createFileTransport({ filePath: './debug.log' }));

// Remove a transport by name
logger.removeTransport('file');

Formatters

FormatterOutputBest for
colorFormatter[timestamp] [INFO ] message {"key":"value"} (ANSI colors)Dev console
plainFormatter[timestamp] [INFO ] message {"key":"value"} (no color)File output
jsonFormatter{"timestamp":"...","level":"info","message":"...","meta":{...}}Production / log aggregators

Custom formatter

A formatter is just a function — write your own:

function myFormatter(level, message, meta) {
  return `${level.toUpperCase()} | ${message} | ${JSON.stringify(meta)}`;
}

createConsoleTransport({ formatter: myFormatter });

API reference

new Logger(options)

OptionTypeDefaultDescription
levelstring'info'Minimum level to emit
transportsarray[]Transport objects
defaultMetaobject{}Merged into every log entry's meta
namestringAdded as meta.logger

logger.log(level, message, meta?)

logger.debug/info/warn/error(message, meta?)

logger.child(meta)Logger

logger.setLevel(level)

logger.addTransport(transport)

logger.removeTransport(name)

File structure

pretty-logger-js/
  index.js              ← public API + default instance
  logger.js             ← Logger class
  formatter.js          ← plain, color, JSON formatters
  transports/
    console.js          ← stdout/stderr transport
    file.js             ← file transport with rotation
    http.js             ← HTTP/HTTPS POST transport
  examples/
    basic.js            ← simple usage
    advanced.js         ← full feature demo
  README.md
  package.json

Running the examples

node examples/basic.js
node examples/advanced.js

Logs written to files will appear in ./logs/.

License

MIT

Keywords

logger

FAQs

Package last updated on 15 Apr 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