Configuration dynamique avec Symfony ExpressionLanguage
Cytron team
-
November 17, 2014
Grâce à notre bundle MonologExtra, nous avons la possibilité d’inclure des informations statiques dans le contexte de nos logs.
Nous souhaiterions maintenant avoir aussi d’autres informations plus dynamiques comme le nom de l’utilisateur.
Pour cela, nous avons donc ajouté la possibilité de configurer une expression qui sera évaluée par le composant ExpressionLanguage de Symfony de cette manière :
Pour interpréter cette expression, nous avons injecté dans notre processeur Monolog une instance de ExpressionLanguage ainsi que le container :
Nous utilisons une définition de service abstraite qui sert de modèle pour les services qui sont générés à partir de la configuration sémantique gérée par l’extension du bundle :
Et l’expression est finalement évaluée par le processeur en utilisant le composant quand la valeur est de la forme expr(...), ceci permettant de garder une compatibilité ascendante avec les configurations statiques précédentes.
Avec la configuration présentée au début, nous récupérons ainsi l’environnement et l’utilisateur connecté dans le contexte de nos logs.