log — Logging für Rust

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist die log-Bibliothek für Rust?

Die Bibliothek log ist eine standardisierte Abstraktion für das Logging im Rust-Ökosystem. Sie bietet eine leichtgewichtige Fassade (facade), die es Entwicklern ermöglicht, Code zu schreiben, der Logs erzeugt, ohne an eine bestimmte Logger-Implementierung gebunden zu sein (z. B. env_logger, simple_logger oder slog). Es ist das Äquivalent zu den beliebten logging-Bibliotheken in Python, jedoch mit Fokus auf Leistung und Speichersicherheit.

Wozu braucht man die log-Bibliothek?

Das Hauptziel von log ist es, die Generierung von Logs von deren Verarbeitung zu trennen. Sie können die Makros info!, warn!, error! in Ihrem Code verwenden und später durch Anbinden eines Backends (z. B. env_logger) die Ausgabe in die Konsole, eine Datei oder ein Überwachungssystem umleiten. Dies ist besonders nützlich für:

  • Das Debuggen komplexer Systeme
  • Die Überwachung von Produktionsanwendungen
  • Die Erstellung von Bibliotheken, die dem Benutzer keine bestimmte Logging-Methode vorschreiben sollen

Installation

Fügen Sie in Cargo.toml hinzu:

[dependencies]log = "0.4"env_logger = "0.10"  # für die Konsolenausgabe

Führen Sie dann cargo build aus.

Hauptfunktionen

  • Logging-Makros: error!, warn!, info!, debug!, trace! — mit Unterstützung für String-Formatierung wie in println!.
  • Filterebenen: Sie können eine minimale Ebene festlegen (z. B. nur Fehler) über die Umgebungsvariable RUST_LOG.
  • Erweiterbarkeit: Unterstützung für benutzerdefinierte Logger über das Log-Trait.
  • Sicherheit: Logs beeinträchtigen die Leistung nicht, wenn die Ebene deaktiviert ist.

Rust-Codebeispiel

use log::{info, warn, error};

fn main() { // Initialisierung des Loggers (env_logger) env_logger::init();

let user = "Alice"; let status = 200;

info!("Benutzer {} hat sich angemeldet", user); warn!("Antwortstatus: {} — möglicherweise veralteter Cache", status); error!("Verbindung zur Datenbank fehlgeschlagen: {}", "timeout");}

Starten Sie mit RUST_LOG=info cargo run, um alle Nachrichten der Ebene info und höher zu sehen.

Wann verwenden

Die Bibliothek log ist ideal für:

  • Jede Rust-Anwendung, die ein standardisiertes Logging-System benötigt (CLI, Server, Dienstprogramme).
  • Bibliotheken — damit der Benutzer sein eigenes Backend wählen kann.
  • Projekte, die von Python migrieren: Das Konzept ähnelt logging.getLogger().

Vermeiden Sie log, wenn Sie asynchrones Schreiben in Dateien oder strukturierte JSON-Logs benötigen — in solchen Fällen sind tracing oder slog besser geeignet.

Empfehlungen