2014-11-05 60 views
0

我聽說過很多關於monolog(https://github.com/Seldaek/monolog)&試圖在我們的應用程序之一中使用它。但是,不能夠無花果。瞭解如何使用它。不知道這是我只能不能得到任何文件或真的沒有文件。如何使用php monolog

我們希望記錄我們在DB &中的所有錯誤,並在發生錯誤時發送電子郵件通知。發送電子郵件我們使用Swiftmailer(swiftmailer.org)。

我能夠運行從GitHub鏈接此示例代碼,

<?php 
use Monolog\Logger; 
use Monolog\Handler\StreamHandler; 

// create a log channel 
$log = new Logger('name'); 
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING)); 

// add records to the log 
$log->addWarning('Foo'); 
$log->addError('Bar'); 

,但不能看得懂如何與DB &任何其他電子郵件庫使用。

+0

你必須使用不同的處理程序的獨白。它爲Swiftmailer,MongoDB和CouchDB提供了Handlers。我不確定,但我想你必須自己爲RDBMS創建一個。 – SenseException 2014-11-05 21:25:01

+0

@SenseException:是啊!這是我知道的。但是,我無法圖。瞭解如何使用這些處理程序。根本沒有例子。 – mi6crazyheart 2014-11-06 03:03:44

回答

1

你自己發表了一個例子。而不是StreamHandler使用monolog提供的一個或多個其他處理程序。

您必須查看處理程序的代碼以查看它們需要哪些依賴關係。查看Monolog目錄,你會發現Handler類。代碼是最可靠的文檔。

<?php 

use Monolog\Logger; 
use Monolog\Handler\SwiftMailerHandler; 

use Swift_Mailer; 
// ... more dependencies you need 

// create your Swift_Mailer and Swift_Message instances 

$handlers = [ 
    new SwiftMailerHandler($swiftMailer, $swiftMessage), 
    // add more handler you need 
]; 

$log = new Logger('name', $handlers); 


$log->warning('Foo'); 
$log->error('Bar'); 

您必須爲SwiftMailerHandler創建一個Swift_Mailer和Swift_Message實例。除了pushHandler外,您還可以在Logger構造函數中添加一個處理程序數組。

Swift_Message實例用於郵件每次替換郵件正文的每條日誌郵件。

我只能建議您閱讀monolog代碼以獲取更多文檔丟失的信息。

+0

昨天,經過2天的突破,我終於知道如何與獨白合作。我已經構建了Swiftmailer的東西以及如何記錄PDO錯誤數據庫表。現在,我想我已經掌握了一些。 無論如何,感謝您的幫助和支持。我真的很感激。 – mi6crazyheart 2014-11-07 04:10:23