Files
khadhroony-bot3/ks-logging/USAGE.md
2026-08-10 09:28:57 +02:00

1.6 KiB

Utilisation de ks-logging

Chargement recommandé

let document = match ks_logging::read_logging_json_file_with_environment(
    std::path::Path::new("config/logging.config.json"),
    std::path::Path::new("."),
) {
    Ok(value) => value,
    Err(error) => return Err(error),
};
let config = match ks_logging::default_logging_profile(&document) {
    Ok(value) => value,
    Err(error) => return Err(error),
};

Le document possède :

{
  "logs_directory": "${KS_LOGS_DIRECTORY:-logs}",
  "default_profile": "local_devnet",
  "profiles": []
}

logs_directory n'appartient à aucun profil. Les paths relatifs des targets fichier sont résolus sous cette racine. Un path absolu reste inchangé.

Override par composition

Une application peut sélectionner un autre profil avec :

let config = match ks_logging::logging_profile(&document, "mainnet_research") {
    Ok(value) => value,
    Err(error) => return Err(error),
};

Le default_profile reste le fallback autonome du document ; la sélection explicite d'une composition prime uniquement pour le consommateur concerné.

Le chemin du document peut être remplacé opérationnellement par KS_LOGGING_CONFIG_PATH. La racine des fichiers peut être remplacée indépendamment par KS_LOGS_DIRECTORY.

Initialisation

Une fois le profil résolu :

match ks_logging::init_logging(&config) {
    Ok(()) => (),
    Err(error) => return Err(error),
}

L'initialisation reste globale au processus. Les binaires doivent donc résoudre leur configuration avant le premier appel à init_logging.