2015-11-01 49 views
1

我的Symfony應用程序根據用戶的請求運行計算。我想給他們發一封電子郵件作爲迴應。如何在我的應用程序中從Monolog中讀取日誌?

我已經創造了config.yml自定義渠道和處理程序:

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

現在我寫的日誌,它從不同的服務:

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

在一個服務,我想電子郵件日誌請求來自「buildbot」Monolog頻道的線路。我怎樣才能讀取日誌行?

回答

1

從設計的角度來看,我不認爲Symfony的記錄器是用於此任務的正確工具。在我看來,記錄器是爲了記錄有關應用程序活動的信息,這些信息對於開發人員(或其他類型的管理員)可能會或可能不會有用。

儘管在您的用例中,日誌是針對最終用戶的,並且不包含應用程序級信息,而是包含請求級信息。我會分開這個。

我個人的做法是創建一個接受這些消息的簡單服務(甚至可以實現記錄器接口),訂閱kernel.terminate事件並最終將組合消息發送給用戶。

無論如何,如果你真的想用Monolog做到這一點,你應該看看它的處理程序。 Here是可用處理程序的列表,而herehere是關於如何配置它們的Symfony特定示例。您可能必須編寫自己的郵件處理程序,因爲打包的郵件處理程序假定存在靜態收件人,而您可能希望將郵件發送給當前用戶。

相關問題