Qu'est-ce que la bibliothèque log pour Rust ?
La bibliothèque log est une abstraction standard pour la journalisation dans l'écosystème Rust. Elle fournit une façade légère (facade) qui permet aux développeurs d'écrire du code générant des logs sans être liés à une implémentation spécifique de logger (par exemple, env_logger, simple_logger ou slog). C'est l'équivalent des bibliothèques populaires logging en Python, mais avec un accent sur la performance et la sécurité mémoire.
Pourquoi utiliser la bibliothèque log ?
L'objectif principal de log est de séparer la génération des logs de leur traitement. Vous pouvez utiliser les macros info!, warn!, error! dans votre code, et plus tard, en connectant l'un des backends (par exemple, env_logger, rediriger la sortie vers la console, un fichier ou un système de surveillance. Ceci est particulièrement utile pour :
- Le débogage de systèmes complexes
- La surveillance d'applications en production
- La création de bibliothèques qui ne doivent pas imposer à l'utilisateur une méthode de journalisation
Installation
Ajoutez dans Cargo.toml :
[dependencies]log = "0.4"env_logger = "0.10" # pour la sortie consoleExécutez ensuite cargo build.
Fonctionnalités principales
- Macros de journalisation :
error!,warn!,info!,debug!,trace!— avec prise en charge du formatage de chaînes comme dansprintln!. - Niveaux de filtrage : vous pouvez définir un niveau minimum (par exemple, uniquement les erreurs) via la variable d'environnement
RUST_LOG. - Extensibilité : prise en charge de loggers personnalisés via le trait
Log. - Sécurité : les logs n'affectent pas les performances si le niveau est désactivé.
Exemple de code en Rust
use log::{info, warn, error};
fn main() { // Initialisation du logger (env_logger) env_logger::init();
let user = "Alice"; let status = 200;
info!("Utilisateur {} connecté", user); warn!("Statut de la réponse : {} — cache peut-être obsolète", status); error!("Échec de connexion à la base de données : {}", "timeout");}Exécutez avec RUST_LOG=info cargo run pour voir tous les messages de niveau info et supérieur.
Quand l'utiliser
La bibliothèque log est idéale pour :
- Toute application Rust nécessitant un système de journalisation standard (CLI, serveurs, utilitaires).
- Les bibliothèques — afin que l'utilisateur puisse choisir lui-même le backend.
- Les projets migrant depuis Python : le concept est similaire à
logging.getLogger().
Évitez log si vous avez besoin d'une écriture asynchrone dans un fichier ou de logs JSON structurés — dans ces cas, tracing ou slog sont plus adaptés.
Aussi dans la bibliothèque
Travailler avec Markdown en C++ : bibliothèques md4c, cmark et cpp-markdown
Journalisation en Rust : aperçu des meilleures bibliothèques et solutions pour votre projet
PhpSpreadsheet PHP : guide complet avec exemples