ironlog 0.2.1

A web logger for multi-node system logging
Documentation

IronLog is a high-performance, real-time logging solution for Rust applications. Built with reliability and ease-of-use in mind, IronLog empowers developers to gain instant insights into their applications' behavior.

Key Features

  • 🚀 Real-time Logging: Stream logs instantly to a centralized server.
  • 🔍 Structured Logging: JSON-formatted logs for easy parsing and analysis.
  • 🔒 Secure: Uses TCP for reliable log transmission, you don't have to use rust for the client.
  • 📊 Web Interface: Built-in web UI for log viewing and analysis.
  • 🔧 Easy Integration: Simple setup with minimal code.
  • 🔄 Asynchronous: Non-blocking logging operations for optimal performance.
  • 💾 Persistent Storage: Store logs in a database for long-term retention and analysis.

Quick Start

  1. Run the log storage and server:

    cargo install ironlog
    ironlog #leave this running in the background or make it a systemd service
    
  2. Add IronLog to your Cargo.toml:

    [dependencies]
    ironlog = "0.1.1"
    
  3. Initialize IronLog in your main.rs:

    use ironlog::TcpLogger;
    
    fn main() {
        TcpLogger::init("127.0.0.1:5000", "your-app-name", log::LevelFilter::Info).unwrap();
        
        log::info!("Application started"); //will show up in the web interface
    }
    
  4. Open your browser and navigate to http://127.0.0.1:8000 to view the logs.

Usage

IronLog seamlessly integrates with Rust's standard logging facade. Use it just like you would use log:

Why IronLog?

IronLog was created to address the common challenge of managing logs across multiple programs in complex systems. It provides a centralized, efficient solution for developers who need to debug and monitor various applications simultaneously, eliminating the need to create custom parsers or juggle multiple logging tools. With IronLog, you can streamline your logging process, enhance your debugging efficiency, and gain valuable insights into your distributed systems with ease.

Contributing

Contributions are welcome. If you have an improvement or bug fix, please submit a pull request. Ensure your code is well-tested. We'll review and merge contributions that enhance IronLog's functionality or reliability.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Todo

  • tests
  • a simple cpp client
  • optional log storage and recovery