Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

A powerful TypeScript/JavaScript logging library designed to enhance your debugging workflow with structured, customizable, and feature-rich logging capabilities.

Notifications You must be signed in to change notification settings

cwandel-afk/FrogiLogs

Open more actions menu

Repository files navigation

🐸 FrogiLogs

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.

✨ Features

  • 🎨 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

🚀 Installation

npm install frogilogs

🎮 Quick Start

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",
});

📚 Transport Types

🖥️ Console Transport

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
  })
);

📄 File Transport

import { Logger, FileTransport } from "frogilogs";
const logger = new Logger();
logger.addTransport(
  new FileTransport({
    filepath: "logs/app.log",
    type: "detailed",
    prettyObjects: true,
  })
);

🌐 HTML Transport

import { Logger, HTMLTransport } from "frogilogs";
const logger = new Logger();
logger.addTransport(
  new HTMLTransport({
    filepath: "logs/app.html",
    prettyObjects: true,
  })
);

✍️ Markdown Transport

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,
  })
);

🌍 Browser Transport

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",
    },
  })
);

🎨 Log Levels

  • 🔵 debug: Detailed debugging information
  • ℹ️ info: General information
  • ⚠️ warn: Warning messages
  • 🔴 error: Error messages

🌈 Type Safety

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);

📖 Examples

Check out our examples directory for more detailed usage:

  • examples/console-example.ts - Console logging with colors
  • examples/file-example.ts - File logging with different formats
  • examples/html-example.ts - Interactive HTML log output
  • examples/markdown-example.ts - Markdown formatted logs
  • examples/browser-example.html - Browser console integration

🤝 Contributing

Contributions are welcome! Feel free to:

  • 🐛 Report bugs
  • 💡 Suggest features
  • 🔧 Submit pull requests

📜 License

ISC © Christopher Wandel 🐸


Made with 💚 by frogs, for developers 🐸✨

About

A powerful TypeScript/JavaScript logging library designed to enhance your debugging workflow with structured, customizable, and feature-rich logging capabilities.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.