1.6 KiB
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.