Skip to content

Log Levels

log-wiz supports seven levels in ascending severity order:

LevelSeverityBadgeWhen to use
trace10TRACEStep-by-step debugging, very high volume
debug20DEBUGDevelopment diagnostics
info30INFONormal operational events
warn40WARNUnexpected but recoverable
error50ERRORAn operation failed
fatal60FATALProcess-level failure
noneInfSilence all output (no-op mode)

Setting a level on your logger drops all entries below that severity:

import { Wiz } from "@gouranga_samrat/log-wiz";
const logger = new Wiz({ level: "warn" });
logger.trace("ignored"); // severity 10 < 40 -> dropped
logger.debug("ignored"); // severity 20 < 40 -> dropped
logger.info("ignored"); // severity 30 < 40 -> dropped
logger.warn("logged [ok]"); // severity 40 = 40 -> written
logger.error("logged [ok]"); // severity 50 > 40 -> written
logger.fatal("logged [ok]"); // severity 60 > 40 -> written

The default level is infotrace and debug are dropped unless you explicitly lower it.

// Development: lower to debug to see more detail
const logger = new Wiz({ level: "debug" });
// Production: keep at info or higher
const logger = new Wiz({ level: "info" });

Set level: 'none' to completely silence the logger without removing any code. Every log call returns immediately — no string formatting, no masking, no I/O. True zero overhead.

const logger = new Wiz({
level: process.env.NODE_ENV === "test" ? "none" : "info",
});

Use setConfig() to change the level without creating a new instance:

const logger = new Wiz({ level: "info" });
// Increase verbosity on demand (e.g. triggered by a signal or feature flag)
process.on("SIGUSR1", () => {
logger.setConfig({ level: "debug" });
logger.info("Log level changed to debug");
});
// Silence during shutdown
process.on("SIGTERM", async () => {
logger.setConfig({ level: "none" });
await logger.close();
process.exit(0);
});

The LogLevel type is exported for use in your own code:

import type { LogLevel } from "@gouranga_samrat/log-wiz";
import { LOG_LEVEL_SEVERITY } from "@gouranga_samrat/log-wiz";
function isAtLeast(entry: LogLevel, threshold: LogLevel): boolean {
return LOG_LEVEL_SEVERITY[entry] >= LOG_LEVEL_SEVERITY[threshold];
}
isAtLeast("error", "warn"); // true
isAtLeast("debug", "info"); // false