v0.1.3-pre.006
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: crates/ksp-logging-lib/README.md -->
|
||||
<!-- version: 4 -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# ksp-logging-lib
|
||||
|
||||
@@ -14,8 +14,8 @@ La crate possède :
|
||||
- `LoggingSettings`, la console explicite et les settings fichier indépendants de Config ;
|
||||
- les formats runtime `Human/Compact/Pretty/Json` ;
|
||||
- zéro, un ou plusieurs outputs fichier actifs simultanément, identifiés par `output_id` unique ;
|
||||
- le routing par output sur niveau et target KSP ;
|
||||
- le contrat de filtre `domain`, dont l'activation runtime structurée est volontairement séparée dans la tranche suivante ;
|
||||
- le routing par output sur niveau, target KSP et champ structuré `domain` ;
|
||||
- l'héritage du `domain` effectif à travers les spans, avec possibilité pour un event ou un span enfant de le remplacer explicitement ;
|
||||
- l'installation unique du subscriber global ;
|
||||
- le hot reload via `reinitialize` sans second subscriber global ;
|
||||
- le takeover des logs : les targets externes sont silencieux par défaut ;
|
||||
@@ -28,7 +28,7 @@ L'API async de production reste indépendante de tout executor. Tokio est utilis
|
||||
|
||||
## Routing `domain`
|
||||
|
||||
`OutputFilter` représente déjà :
|
||||
`OutputFilter` applique désormais les trois dimensions :
|
||||
|
||||
```text
|
||||
level
|
||||
@@ -36,9 +36,17 @@ targets[]
|
||||
domains[]
|
||||
```
|
||||
|
||||
`0.1.3-pre.005` active réellement `level` et `targets[]`. Un output actif dont `domains[]` est différent de `[*]` est refusé explicitement par `initialize/reinitialize` jusqu'à la tranche dédiée au routing structuré par champ `domain`.
|
||||
Le `domain` reste un champ structuré distinct du target. Sa résolution runtime suit ces règles :
|
||||
|
||||
Ce refus évite d'assimiler artificiellement `domain` au target ou d'ignorer silencieusement la dimension demandée.
|
||||
- le `domain` porté directement par un event est prioritaire ;
|
||||
- sinon l'event hérite du `domain` effectif de son span ;
|
||||
- un span qui porte son propre `domain` remplace celui de son parent ;
|
||||
- un span sans `domain` hérite de celui de son parent au moment de sa création ;
|
||||
- les événements de lifecycle de span utilisent le `domain` effectif du span concerné ;
|
||||
- un selector `domains = ["*"]` accepte aussi les événements sans `domain` ;
|
||||
- un selector nommé correspond par préfixe et ne sélectionne pas un événement sans `domain`.
|
||||
|
||||
Le routing `domain` est appliqué en plus du niveau et du target de l'output. Il ne modifie ni le target propriétaire KSP ni les champs formatés.
|
||||
|
||||
## Frontières
|
||||
|
||||
|
||||
Reference in New Issue
Block a user