Make your logs hop with style! 🌟
A powerful TypeScript/JavaScript logging library designed to enhance your debugging workflow with structured, customizable, and feature-rich logging capabilities.
- 🎨 Beautiful, colorful console output
- 📁 Multiple transport types:
- 🖥️ Console logs with ANSI colors
- 📄 File-based logging
- 🌐 HTML output with interactive UI
- ✍️ Markdown formatting
- 🌍 Browser console integration
- 🎯 TypeScript support with full type definitions
- 🔍 Caller tracking
- 🎭 Multiple log levels (debug, info, warn, error)
- 🎪 Pretty-printed objects
- 🔧 Highly configurable
npm install frogilogs
import { Logger, ConsoleTransport } from "frogilogs";
// Create a new logger
const logger = new Logger({
level: "debug",
timestamp: true,
traceCaller: true,
});
// Add a console transport
logger.addTransport(
new ConsoleTransport({
colorize: true,
type: "detailed",
prettyObjects: true,
})
);
// Start logging!
logger.info("Hello, FrogiLogs! 🐸", {
mood: "hoppy",
weather: "perfect for frogs",
});
import { Logger, ConsoleTransport } from "frogilogs";
const logger = new Logger();
logger.addTransport(
new ConsoleTransport({
colorize: true, // Enable ANSI colors
type: "detailed", // or 'standard', 'json'
prettyObjects: true,
gap: 1, // Add spacing between logs
})
);
import { Logger, FileTransport } from "frogilogs";
const logger = new Logger();
logger.addTransport(
new FileTransport({
filepath: "logs/app.log",
type: "detailed",
prettyObjects: true,
})
);
import { Logger, HTMLTransport } from "frogilogs";
const logger = new Logger();
logger.addTransport(
new HTMLTransport({
filepath: "logs/app.html",
prettyObjects: true,
})
);
import { Logger, MarkdownTransport } from "frogilogs";
const logger = new Logger();
logger.addTransport(
new MarkdownTransport({
filepath: "logs/app.md",
type: "detailed", // or 'standard', 'json'
prettyObjects: true,
logTitle: "Application Logs",
gap: 1,
})
);
import { Logger, BrowserTransport } from "frogilogs";
const logger = new Logger();
logger.addTransport(
new BrowserTransport({
colorize: true, // Enable CSS styling
type: "detailed", // or 'standard', 'json'
prettyObjects: true, // Pretty print objects in console
styles: {
debug: "color: gray",
info: "color: blue",
warn: "color: orange",
error: "color: red; font-weight: bold",
},
})
);
- 🔵
debug
: Detailed debugging information - ℹ️
info
: General information ⚠️ warn
: Warning messages- 🔴
error
: Error messages
FrogiLogs is written in TypeScript and provides full type definitions. You can define custom metadata interfaces:
interface UserLogMeta extends LogMeta {
userId: string;
action: string;
timestamp: Date;
}
logger.info("User action", {
userId: "123",
action: "login",
timestamp: new Date(),
} as UserLogMeta);
Check out our examples directory for more detailed usage:
examples/console-example.ts
- Console logging with colorsexamples/file-example.ts
- File logging with different formatsexamples/html-example.ts
- Interactive HTML log outputexamples/markdown-example.ts
- Markdown formatted logsexamples/browser-example.html
- Browser console integration
Contributions are welcome! Feel free to:
- 🐛 Report bugs
- 💡 Suggest features
- 🔧 Submit pull requests
ISC © Christopher Wandel 🐸
Made with 💚 by frogs, for developers 🐸✨