drcode-rust

Crates.iodrcode-rust
lib.rsdrcode-rust
version1.1.0
sourcesrc
created_at2024-09-18 07:36:17.273571
updated_at2024-09-19 06:38:45.158428
descriptionA drcode-rust is a Rust package that facilitates error tracking and performance monitoring for your applications. Utilizing the sentry package internally, drcode-rust collects and processes application logs to provide detailed insights into errors and performance issues. With this package, you can easily integrate error tracking into your Rust applications, helping you to maintain optimal performance and quickly address issues.
homepage
repository
max_upload_size
id1378873
size18,414
Ashutosh Renu (ashu8894)

documentation

README

DrCode

DrCode is a Rust library that provides an easy-to-use wrapper around for error tracking and logging. It simplifies the integration of into your Rust applications, allowing you to capture messages, errors, and panics efficiently.

Features

  • Capture messages with various levels
  • Capture custom errors
  • Automatic panic capturing
  • Easy integration with configuration validation

Installation

To use DrCode in your Rust project, add it to your Cargo.toml file:

[dependencies]
drcode-rust = "1.0.1"  # Replace with the latest version

Configuration You need to provide your configuration with a public key and project ID. Optionally, you can set a traces_sample_rate to control the sampling of traces.

Here's an example configuration:

use drcode::{Config, DrCode, Level, setup_panic_hook};

fn main() {
    // Set up the configuration for the DrCode wrapper
    let config = Config {
        public_key: "your-public-key".to_string(),
        project_id: "your-project-id".to_string(),
        traces_sample_rate: Some(1.0),
    };

    // Initialize DrCode with the config
    let drcode = DrCode::new(config).expect("Failed to initialize DrCode");

    // Capture a message with info level
    drcode.capture_message("Test message from DrCode project", Level::Info);

    // Set up panic hook to capture panics in
    setup_panic_hook();

    // Trigger a panic to check if  captures it
    panic!("Test panic from DrCode project");

    println!("Test completed successfully!"); // This will not be reached due to the panic
}

API DrCode::new(config: Config) -> Result<DrCode, DrCodeError> Initializes a new DrCode instance with the provided configuration.

capture_message(&self, message: &str, level: Level) Captures a message with the specified severity level. The Level can be one of Level::Info, Level::Warning, Level::Error, etc.

capture_error(&self, error: &E) Captures a custom error. The error must implement std::error::Error and be Send, Sync, and 'static.

setup_panic_hook() Sets up a panic hook to automatically capture panics and send them to

Error Handling The library provides the following errors:

DrCodeError::MissingField(String): Indicates a missing required configuration field. DrCodeError::InitializationError(String): Indicates an error during initialization. Examples

Capturing Messages
rust
Copy code
let drcode = DrCode::new(config).expect("Failed to initialize DrCode");
drcode.capture_message("This is an info message", Level::Info);
Capturing Errors
rust
Copy code
let simulated_error = std::io::Error::new(std::io::ErrorKind::Other, "Simulated error");
drcode.capture_error(&simulated_error);
Automatic Panic Capturing
rust
Copy code
setup_panic_hook();
// Trigger a panic to test
panic!("This panic should be captured by ");

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

Contributing Contributions are welcome! Please submit issues and pull requests on the GitHub repository.

Contact For any questions or feedback, please reach out to [your email address].

vbnet Copy code

Notes

  1. Replace Placeholder Values: Be sure to replace "your-public-key", "your-project-id", and other placeholder values with actual information specific to your setup.
  2. License and Contact Information: Update the license section and contact information to reflect your project's details.

Feel free to adjust the content according to your specific needs or preferences!

Commit count: 0

cargo fmt