2013-12-11 58 views
0

您好調用未定義的方法照亮的 Support 外立面登錄::聽()

我試圖寫Laravel 4定製包,做一些額外的日誌記錄。根據Laravel文檔(http://laravel.com/docs/errors),我可以創建一個監聽器,並在Closure中做我需要的。

這是的ServiceProvider

use Log;

public function register() 
{ 
    Log::listen(function($level, $message, $context) 
    { 
     $vmlog = new Vmlog(); 
     $vmlog->log($level, $message, $context); 
    }); 
} 

我收到以下錯誤內寄存器功能:

Call to undefined method Illuminate\Support\Facades\Log::listen() 

這是別名條目(我沒有改變)。

'aliases' => array(
    ... 
    'Log'    => 'Illuminate\Support\Facades\Log', 
    ... 
), 

我在哪裏錯了,爲什麼我不能訪問listen()函數?

回答

3

服務提供商中的register()方法無法保證Laravel在調用時已完全引導。它只能用於寄存器 IoC綁定,而不是更多。切勿在此方法中放置任何應用程序邏輯。

將您的代碼移動到boot()方法,該方法在Laravel和您的軟件包完全加載後調用。

public function boot() 
{ 
    Log::listen(function($level, $message, $context) 
    { 
     ... 
    }); 
} 
+0

Ta,愚蠢的錯誤。 – SynackSA

+0

@SynackSA沒問題,我們都讓他們;-) –

相關問題