2016-04-29 10 views
1

でアクティブなログの名前を取得、私はアプリで現在のログの名前を知っている必要がありLaravel 5.laravel:ランタイム

Iluminate\Log\Writerに、このために検索してみます。

一部の関数の呼び出しでは$ path varのみが表示されますが、この値を取得する方法はわかりません。

基本的には、ファイルを圧縮してアプリにいくつかの例外が発生した場合に送信する必要があります。このために、私はアクティブなログの名前を知る必要があります。

マイアプリconfの日々の回転のためのログと、私はPHPを使用して名前を知っているが、私はLogクラス自体を使用して知ることができると想像laravel-2016-04-29.log

、このようなログの名前を参照してください。

私は私があなたのためのソリューションを持っている数日前に、おそらくログインLaravelに少し掘るために起こったより良い方法

答えて

0

があると思い

use Carbon\Carbon; 
... 

$carbon = new Carbon(); 
$log = storage_path().'/logs/laravel-'.$carbon->toDateString().'.log'; 

を考えてきた最高。

Log::info('abc'); 

foreach (Log::getMonolog()->getHandlers() as $handler) { 
    $stream = $handler->getStream(); 

    if ($stream) { 
     $meta = stream_get_meta_data($stream); 
     echo $meta['uri'] . "<br/>"; 
    } 
} 

これは、書き込まれたログファイルのパスを出力します。 それ以外の場合、getStream()nullを返しますので、簡単にパスを抽出することはできません。残念ながら保護されているプロパティのMonolog\Handler\RotatingFileHandlerに格納されているため、このクラスを拡張してパスを取得する必要があります。

+0

経路には問題ありません。あなたは 'storage_path()。 '/ logs /''を使って簡単にruteを得ることができます。その名前。名前が変更されていなければ、名前は論理的です。 laravel-DATETIME.log。 DATETIMEはローカル日付形式です。 – abkrim