2015-11-01 1 views
1

Mon application Symfony exécute des calculs basés sur la requête d'un utilisateur. J'aimerais leur envoyer un courriel en guise de réponse.Comment lire les journaux de Monolog dans mon application?

J'ai créé un canal personnalisé et gestionnaire dans config.yml:

# config.yml 
# ... 
monolog: 
    handlers: 
     buildbot: 
      level: info 
      type:  stream 
      channels: [buildbot] 

Maintenant j'écris journalisez de divers services:

<?php 
// AppBundle/Services/BuildBot.php 
$this->buildLogger->info('Fabricating robot shell'); 

Dans un service que je veux envoyer un courriel au demandeur avec journal lignes de la chaîne Monolog "buildbot". Comment puis-je lire les lignes de journal?

Répondre

1

Du point de vue de la conception, je ne pense pas que le logger de Symfony soit le bon outil à utiliser pour cette tâche. À mon avis, cet enregistreur est destiné à consigner des informations sur les activités de votre application qui peuvent ou ne peuvent pas vous être utiles en tant que développeur (ou d'autres types d'administrateurs). Considérant que dans votre cas d'utilisation, le journal est destiné à l'utilisateur final et ne contient pas vraiment d'informations au niveau de l'application mais des informations de niveau requête. Je séparerais cela. Mon approche personnelle serait de créer un service simple (qui pourrait même implémenter l'interface de l'enregistreur) qui accepte ces messages, s'abonne à l'événement kernel.terminate et envoie les messages combinés à l'utilisateur à la fin.

De toute façon, si vous voulez vraiment faire cela avec Monolog, vous devriez regarder dans ses gestionnaires. Here est une liste de gestionnaires disponibles tandis que here et here sont des exemples spécifiques à Symfony sur la façon de les configurer. Vous devez probablement écrire votre propre gestionnaire de mailing car celui-ci suppose qu'il y a un destinataire statique alors que vous voulez probablement que le mail soit envoyé à l'utilisateur courant.