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 frogilogsimport { 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 ๐ธโจ