Files
khadhroony-bot3/kb-logging/USAGE.md
2026-07-31 13:25:26 +02:00

2.2 KiB
Raw Blame History

Utilisation de kb-logging

Initialisation

let config = kb_logging::LoggingConfig {
    default_level: "info".to_string(),
    targets: vec![kb_logging::LogTargetConfig {
        name: "console".to_string(),
        enabled: true,
        sink: "console".to_string(),
        level: "info".to_string(),
        path: String::new(),
        rotation: "none".to_string(),
        format: "compact".to_string(),
        ansi: true,
        targets: vec!["kb-*".to_string()],
    }],
    target_filters: Vec::new(),
};
let guard = match kb_logging::init_logging(&config) {
    Ok(value) => value,
    Err(error) => return Err(error),
};

init_logging doit être appelée une seule fois par processus. Le LoggingGuard retourné doit rester vivant jusquà larrêt afin de ne pas interrompre les writers non bloquants.

Inspection des routes

assert_eq!(guard.route_count(), 1);
assert_eq!(guard.guard_count(), 1);
assert_eq!(guard.route_names(), &["console".to_string()]);

Routes fichier

Pour une route file, path doit désigner le fichier cible et rotation doit être une valeur supportée (none, never, daily ou hourly). Les formats supportés sont human, compact, pretty et json.

Filtres de targets

Les routes acceptent des targets exactes et des préfixes wildcard. Les target_filters ajoutent des niveaux spécifiques aux routes wildcard. Une route derreur conserve la sémantique stricte prévue par limplémentation.

Erreurs

Les erreurs utilisent kb_core::Error. Les cas principaux sont :

  • aucune route activée ;
  • sink, format, rotation ou niveau inconnu ;
  • chemin fichier invalide ;
  • échec dinitialisation du subscriber global.

Tests instructifs

  • enabled_routes_keep_all_configured_outputs vérifie linstallation multi-routes ;
  • route_writer_filter_preserves_target_and_level_semantics vérifie ladmission finale ;
  • more_than_64_routes_compose_without_filtered_layer_ids couvre un volume élevé de routes ;
  • every_tracing_crate_exposes_canonical_targets vérifie la cohérence des targets du workspace.

Limites

  • initialisation globale unique par processus ;
  • configuration fournie par lappelant ;