rauricoste-logger
v2.2.6
Published
This is a lightweight library to handle logs in an application. It is written in Typescript but can be used in a JS project.
Readme
Summary
This is a lightweight library to handle logs in an application. It is written in Typescript but can be used in a JS project.
Usage
Simple usage:
import { logger } from "rauricoste-logger";
logger.info("hello world");
// 2025/10/17 11:31:31.508 INFO _ hello worldLog levels
Default log level is INFO
import { logger } from "rauricoste-logger";
logger.debug("hello world");
// not working
logger.info("hello world");
// 2025/10/17 11:31:31.508 INFO _ hello worldThere are 5 default log levels:
import { logger, LoggerLevel } from "rauricoste-logger";
logger.setLevel(LoggerLevel.DEBUG);
logger.debug("hello world");
logger.info("hello world");
logger.warn("hello world");
logger.error("hello world");
logger.fatal("hello world");
// 2025/10/17 11:31:31.507 DEBUG _ hello world
// 2025/10/17 11:31:31.508 INFO _ hello world
// 2025/10/17 11:31:31.508 WARN _ hello world
// 2025/10/17 11:31:31.508 ERROR _ hello world
// 2025/10/17 11:31:31.508 FATAL _ hello worldIt is possible to log at a custom log level:
logger.log(23, "special log level");
// 11:24:56.431 WARN _ special log levelLog level are actually mapped to a number:
const LoggerLevel = {
DEBUG: 10,
INFO: 20,
WARN: 30,
ERROR: 40,
FATAL: 50,
};The log level of a logger can be set dynamically:
import { logger, LoggerLevel } from "rauricoste-logger";
logger.setLevel(LoggerLevel.DEBUG);
logger.debug("hello world");
// nothing is logged
logger.setLevel(LoggerLevel.WARN);
logger.debug("hello world");
// 2025/10/17 11:36:58.671 DEBUG _ hello worldLogger hierarchy
Loggers can have children that inherit the log levels and appenders.
import { logger, LoggerLevel } from "rauricoste-logger";
const childLogger = logger.getLogger("child");
childLogger.warn("test");
// 2025/10/17 11:42:46.365 WARN _.child test
logger.setLevel(LoggerLevel.WARN);
console.log(logger.level);
// 30
console.log(childLogger.level);
// 30
logger.setLevel(LoggerLevel.ERROR);
console.log(logger.level);
// 40
console.log(childLogger.level);
// 40Child loggers are linked to their name:
import { logger } from "rauricoste-logger";
const childLogger = logger.getLogger("child");
const childLogger2 = logger.getLogger("child");
console.log(childLogger === childLogger2);
// trueAppenders
By default, the console appender is configured but it is possible to remove or add any appender.
An appender is defined by:
type Appender = (logger: Logger, level: LoggerLevel, ...args: any[]) => void;You can change the appenders:
import { type Appender, Logger, logger, LoggerLevel } from "rauricoste-logger";
const dumbAppender: Appender = (
logger: Logger,
level: LoggerLevel,
...args
) => {
console.log(logger.name, level, ...args);
};
logger.appenders = [dumbAppender];
logger.info("hello world");
// _ 20 hello world