DragonSlayer_14 1e2d4cf187
Testing Build, Check & Preview Release / Build, Check & Create Preview Release (push) Skipped
Main Release & Publish / Erkenne relevante Code-Änderungen (push) Successful in 7s
Security Scans / Trivy & OSV-Scanner (push) Successful in 37s
Main Release & Publish / Build, Publish Crate to Gitea Registry & Create Release (push) Successful in 1m16s
TruffleHog Secret Scan / TruffleHog (push) Successful in 21s
Merge pull request 'Merge testing in main: Release 1.0.5' (#17) from testing into main
Reviewed-on: #17
2026-09-13 12:44:49 +00:00
2026-08-26 18:54:02 +02:00

Logger (logger-ctdra)

logger-ctdra ist eine leichtgewichtige, threadsichere Logging-Crate für Rust mit Schweregrad-Filterung, formatierten Terminalausgaben und automatischer Dateiprotokollierung.

Merkmale

  • Dual-Output: Protokolliert synchron auf die Standard-Streams (stdout/stderr) und gleichzeitig in tagesbasierte Logdateien (log-YYYY-MM-DD.log).
  • Schweregrad-Filterung (LogLevel):
    • Error (1) — Kritische Fehler (Ausgabe auf stderr mit [!]-Präfix)
    • Warn (2) — Warnungen (Ausgabe auf stdout mit [?]-Präfix)
    • Info (3) — Betriebsinformationen (Ausgabe auf stdout mit [i]-Präfix)
    • Debug (4) — Diagnoseausgaben (Ausgabe auf stdout mit [d]-Präfix)
  • Threadsicherheit: Dateischreibzugriffe und Konfiguration sind thread-sicher serialisiert.
  • Einheitliches Format: [Präfix][DD.MM.YYYY HH:MM:SS.mmm][LEVEL][Tag]: Nachricht
  • Flexible Konfiguration:
    • Log-Level per Code (set_log_level), Umgebungsvariable (LOG_LEVEL bzw. RUST_LOG) oder Fallback (Info).
    • Automatisches Ermitteln des Programmnamens via program-ctdra (mit zufälligem Fallback-Wert).
    • Anpassbares Log-Verzeichnis (set_log_dir) oder automatische Ablage im Temp-Verzeichnis (std::env::temp_dir()).

Installation

Aus der Gitea Cargo Package Registry

Füge die Gitea-Registry zu deiner ~/.cargo/config.toml hinzu:

[registries.gitea]
index = "sparse+https://gitea.creative-dragonslayer.de/api/packages/Rust-Crates/cargo/"

Füge anschließend die Abhängigkeit in deiner Cargo.toml ein:

[dependencies]
logger-ctdra = { version = "1.0.1", registry = "gitea" }

Alternativ als Git- oder Pfad-Abhängigkeit:

[dependencies]
logger-ctdra = { git = "https://gitea.creative-dragonslayer.de/Rust-Crates/logger.git", branch = "main" }
# oder lokal:
# logger-ctdra = { path = "../Logger" }

Verwendung

Grundlegendes Beispiel

use logger_ctdra::{log, set_log_level, LogLevel};

fn main() {
    // Optional: Log-Level setzen (Standard: Info)
    set_log_level(LogLevel::Debug);

    log("main", "Anwendung gestartet", LogLevel::Info);
    log("network", "Verbindung hergestellt", LogLevel::Debug);
    log("auth", "Ungültiger Token erhalten", LogLevel::Warn);
    log("database", "Verbindung zur Datenbank fehlgeschlagen!", LogLevel::Error);
}

Hilfsfunktionen

Für häufige Aufrufe stehen direkte Hilfsfunktionen zur Verfügung:

use logger_ctdra::{debug, error, info, warn};

fn run() {
    info("service", "Dienst bereit");
    debug("service", "Debug-Details");
    warn("service", "Ressourcen fast erschöpft");
    error("service", "Kritischer Fehler!");
}

Konfiguration des Logpfads

use logger_ctdra::set_log_dir;
use std::path::PathBuf;

fn init() {
    // Individuelles Logverzeichnis vorgeben:
    set_log_dir(PathBuf::from("/var/log/my-service"));
}

Entwicklung und Tests

# Überprüfen
cargo check --all-targets

# Tests ausführen
cargo test

# Release kompilieren
cargo build --release

# Crate paketieren
cargo package

Lizenz

Dieses Projekt ist unter der GNU General Public License v3.0 oder neuer lizenziert (GPL-3.0-or-later). Siehe LICENSE.

S
Description
"logger" ist eine leichtgewichtige, threadsichere Logging-Crate für Rust mit Schweregrad-Filterung, formatierten Terminalausgaben und automatischer Dateiprotokollierung.
Readme GPL-3.0
158 KiB
2026-09-13 12:46:17 +00:00
Languages
Rust 53.7%
Python 46.3%