A flexible and type-safe mock logger for testing and development with colored console output.
npm install loggermock
- Type-safe logging interface
- Colored console output for different log levels
- Automatic caller information tracking
- Environment-aware logging (development/production)
- Timestamp support
- Zero dependencies
import { loggerMock } from "loggermock";
// Basic usage
loggerMock.info({
message: ["User logged in", { userId: "123" }],
});
// Force logging even in production
loggerMock.debug({
message: ["Debug information"],
forceLog: true,
});
// Custom method name
loggerMock.error({
message: ["Operation failed", new Error("Database error")],
method: "CustomMethod",
});
interface LogOptions {
forceLog?: boolean; // Force logging even in production
method?: string; // Optional method name (auto-detected if not provided)
message: (string | number | boolean | object)[]; // Message content
}
Each method accepts a LogOptions
object:
debug(options: LogOptions): void
- Blue colored debug messagesinfo(options: LogOptions): void
- Green colored info messageswarn(options: LogOptions): void
- Yellow colored warning messageserror(options: LogOptions): void
- Red colored error messageslog(options: LogOptions): void
- Standard log messages
The logger outputs messages in the following format:
[TIMESTAMP] [LEVEL] filename:method:line - message content
- Development: All messages are logged by default
- Production: Messages are only logged when
forceLog: true
import { loggerMock } from "loggermock";
// Debug with object data
loggerMock.debug({
message: ["Processing request", { method: "GET", path: "/users" }],
});
// Warning with custom method
loggerMock.warn({
message: ["Rate limit approaching"],
method: "RateLimiter",
});
// Error with error object
loggerMock.error({
message: ["Failed to connect", new Error("Connection timeout")],
});
MIT
Contributions are welcome! Please feel free to submit a Pull Request.