@knownasrazi/colored-log
v1.0.0
Published
A tiny, dependency-free console logger with pretty colors, namespaces and level filtering.
Maintainers
Readme
colored-log
A tiny, dependency-free console logger with pretty block badges.
Zero dependencies - ~2 KB gzipped - TypeScript - Node + Bun
23:14:52.012 lavalink INFO Connected to node `main` in 14ms
23:14:52.014 lavalink.node OK Latency 42ms | Players 3 | Penalty 0
23:14:53.001 dashboard WARN WS client backpressure high (5s)
23:14:53.730 commands ERR Failed to load guard: verificationFeatures
- 6 levels -
trace,debug,info,success,warn,error - Block badges - modern colored labels, no unbalanced bracket soup
- Nested namespaces -
logger.child("lavalink")->app.lavalink - Level filtering - set a minimum level at creation or runtime
- Timestamps -
HH:MM:SS.mmm, togglable - Auto TTY detection - colors switch off when piped
- Testable - inject a custom
streamsink - Zero dependencies
Install
bun add @knownasrazi/colored-log # or
npm install @knownasrazi/colored-logUsage
import { logger, createLogger } from "@knownasrazi/colored-log";
logger.info("Server listening on :5000");
logger.success("Boot complete in 243ms");
logger.warn("Lavalink node backoff in progress");
logger.error("Failed to fetch track", err);
// Scoped loggers keep each subsystem tidy
const app = createLogger({ name: "app" });
app.debug("cache invalidated");
app.child("db").warn("slow query: 412ms");API
createLogger(options?: LoggerOptions): Logger
| Option | Type | Default | Description |
| ----------- | ----------- | ------------ | --------------------------------- |
| name | string | - | Namespace prefix |
| level | LogLevel | "info" | Minimum level to emit |
| timestamp | boolean | true | Show HH:MM:SS.mmm prefix |
| colors | boolean | auto (TTY) | Force ANSI colors on/off |
| stream | fn | console | Custom sink (line, meta) -> void |
Logger
| Method | Description |
| ----------------- | ------------------------------------ |
| info(...args) | Log at info level |
| success(...) | Green OK badge |
| warn(...args) | Emits to stderr |
| error(...args) | Emits to stderr |
| child(name) | Nested namespace logger |
| setLevel(level) | Raise/lower the threshold at runtime |
Level order (low -> high): trace < debug < info = success < warn < error.
Global logger
import { logger } from "@knownasrazi/colored-log";
logger.setLevel("debug");
logger.child("network").info("connected");Development
git clone https://github.com/knownasrazi/colored-log.git
cd colored-log
bun install
bun test # run tests
bun run build # tsup -> dist/
bun run lint # biome checkLicense
@knownasrazi/colored-log - logs that look as good as your code.
