@yum-tty/sprinkles
v0.1.3
Published
A logging library for Bun. A TypeScript port of Log.
Maintainers
Readme
Sprinkles
A logging library for Bun. A TypeScript port of Log.
Sprinkles provides a simple, structured logging API with support for multiple output formats and log levels.
Installation
bun add github:yum-tty/sprinklesOr install from a specific package:
bun add sprinklesQuick Start
import { Logger, Info, Debug, Error } from "sprinkles"
// Use the default logger
Info("Server started", "port", 3000)
Debug("Connection established")
Error("Failed to connect", "host", "localhost")Features
Log Levels
import { Trace, Debug, Info, Warn, Error, Fatal } from "sprinkles"
Trace("Trace message")
Debug("Debug message")
Info("Info message")
Warn("Warning message")
Error("Error message")
// Fatal("Fatal message") // Exits the processCustom Logger
import { Logger, InfoLevel } from "sprinkles"
const logger = new Logger({
level: InfoLevel, // Info level
prefix: "myapp", // Add prefix to all messages
timestamp: true, // Show timestamps
})
logger.info("Server started", "port", 3000)
logger.debug("Debug message") // Won't show (level too low)
logger.error("Error occurred")Output Formats
import { Logger, TextFormatter, JSONFormatter, LogfmtFormatter } from "sprinkles"
// Text format (default)
const textLogger = new Logger({ formatter: TextFormatter })
// JSON format
const jsonLogger = new Logger({ formatter: JSONFormatter })
// Logfmt format
const logfmtLogger = new Logger({ formatter: LogfmtFormatter })Key-Value Pairs
import { Info, Debug, Error } from "sprinkles"
Info("User logged in", "userId", 123, "ip", "192.168.1.1")
Debug("Processing request", "method", "GET", "path", "/api/users")
Error("Database error", "query", "SELECT *", "error", "timeout")Log Levels
| Level | Name | Description | |-------|------|-------------| | -2 | TRACE | Trace messages | | -1 | DEBUG | Debug messages | | 0 | INFO | Informational messages | | 1 | WARN | Warning messages | | 2 | ERROR | Error messages | | 3 | FATAL | Fatal messages (exits process) |
Setting Level
import { Logger, DebugLevel, InfoLevel } from "sprinkles"
// Show only info and above
const logger = new Logger({ level: InfoLevel })
// Show debug and above
const debugLogger = new Logger({ level: DebugLevel })API Reference
Logger
| Method | Description |
|--------|-------------|
| trace(msg, ...keyvals) | Log a trace message |
| debug(msg, ...keyvals) | Log a debug message |
| info(msg, ...keyvals) | Log an info message |
| warn(msg, ...keyvals) | Log a warning message |
| error(msg, ...keyvals) | Log an error message |
| fatal(msg, ...keyvals) | Log a fatal message and exit |
Config Options
| Option | Description |
|--------|-------------|
| level | Set the log level |
| prefix | Set a prefix for all messages |
| timestamp | Enable/disable timestamps |
| caller | Enable/disable caller info |
| formatter | Set output format |
Contributing
Contributions are welcome! Please read our Contributing Guide first.
