1.0.5 • Published 11 months ago

@medishn/gland-logger v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

gland-logger

A customizable and modular logger designed for both console and file-based logging with support for file rotation, buffering, color personalization, and modular transport handling.

Features

  • Console and File Logging: Log messages to both console and file with custom formats.
  • File Rotation: Automatically rotate log files based on size.
  • Buffering: Buffer logs and flush them at intervals or when reaching a buffer size.
  • Color Personalization: Customize log message colors for better console readability.
  • Modular Transports: Easily configure and extend logging transports (console, file).
  • Customizable Log Levels: Use predefined log levels (info, warn, error, debug) or set your own.
  • Default Levels: The default log level is info if not specified.

Installation

npm install @medishn/gland-logger

Usage

Basic Setup

import { Logger } from "@medishn/gland-logger";

const logger = new Logger({
  transports: ["console", "file"],
  file: "app.log",
});

logger.log({
  message: "Application started",
  level: "info",
  category: "APP",
});

Customizing Log Colors

You can personalize console log colors for each log level.

const logger = new Logger({
  transports: ["console"],
  console: {
    colors: {
      info: "\x1b[32m", // green
      warn: "\x1b[33m", // yellow
      error: "\x1b[31m", // red
      debug: "\x1b[34m", // blue
    },
  },
});

logger.log({ message: "Server started", level: "info" });

File Rotation and Buffering

You can specify file rotation settings, such as maximum file size, and buffer log entries to be flushed at regular intervals.

const logger = new Logger({
  transports: ["file"],
  file: "app.log",
  rotation: { maxSize: 1024 * 1024 }, // 1MB file size before rotating
});

logger.log({ message: "Logging to file with rotation", level: "debug" });

API

Logger Class

  • Constructor:
    • opts: Options
      • transports: Array<"console" | "file">: Specifies where to log (console, file, or both).
      • file?: string: The path for the log file.
      • format?: "iso" | "locale": Log date format (default is "iso").
      • rotation?: { maxSize: number }: File rotation settings.
      • console?: { colors: Record<LogLevel, string> }: Custom console log colors.
  • Methods:
    • log(args: Arguments.Log): Log a message.
    • close(): Closes the file transport and flushes any remaining logs.

License

This project is licensed under the MIT License.

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago