46 lines
2.1 KiB
Markdown
46 lines
2.1 KiB
Markdown
<!-- file: ks-logging/README.md -->
|
||
<!-- version: 7 -->
|
||
|
||
# ks-logging
|
||
|
||
`ks-logging` possède le contrat logging indépendant du workspace et initialise le subscriber global `tracing` à partir du profil logging sélectionné.
|
||
|
||
## Responsabilités
|
||
|
||
- charger `logging.config.json` et résoudre ses placeholders d’environnement ;
|
||
- valider `config/schemas/logging.config.schema.json` ;
|
||
- sélectionner un profil logging indépendamment du profil applicatif ;
|
||
- posséder `LoggingConfig`, `LogTargetConfig` et `LogTargetFilterConfig` ;
|
||
- sélectionner les routes activées ;
|
||
- appliquer niveaux, targets exactes et préfixes wildcard ;
|
||
- créer les writers non bloquants et gérer les formats/rotations ;
|
||
- conserver les `WorkerGuard` pendant toute la durée du processus.
|
||
|
||
## Relations
|
||
|
||
`ks-logging` dépend de `ks-config` uniquement pour le chargement du fichier `.env` et la résolution générique `${KS_*}` / `${KB_*}`. `ks-config` ne dépend pas de `ks-logging` et ne duplique aucun type logging.
|
||
|
||
Le desktop lit le chemin `logging` et le `logging_profile` depuis `config/kb-app-demo-desktop.default.config.json`, charge le document logging puis transmet le profil explicitement sélectionné à `init_logging`.
|
||
|
||
## API publique
|
||
|
||
- `read_logging_json_file_with_environment` charge le document logging ;
|
||
- `parse_logging_json` et `validate_logging_json_schema` valident le format ;
|
||
- `active_logging_profile` sélectionne le profil autonome actif et `logging_profile` résout un profil explicitement nommé par une composition ;
|
||
- `LoggingConfigDocument` et `LoggingProfileConfig` décrivent le document ;
|
||
- `LoggingConfig`, `LogTargetConfig` et `LogTargetFilterConfig` décrivent le runtime ;
|
||
- `init_logging` initialise le subscriber global ;
|
||
- `LoggingGuard` maintient les writers ;
|
||
- `tracing_target` retourne le target canonique de la crate.
|
||
|
||
## Statut
|
||
|
||
Le split config/logging est fonctionnel. Les profils logging sont indépendants des profils applicatifs et les routes existantes restent conservées dans `config/logging.config.json`.
|
||
|
||
## Documents
|
||
|
||
- [Utilisation](USAGE.md)
|
||
- [Travaux restants](TODO.md)
|
||
- [Historique](CHANGELOG.md)
|
||
- [Configuration locale](../config/README.md)
|