laravel:在运行时获取活动日志的名称

时间:2016-04-29 17:25:17

标签: laravel laravel-5

我需要知道应用程序Laravel 5中当前日志的名称。

尝试在Iluminate\Log\Writer上搜索此内容。

仅在调用某些函数时看到$ path var,但我不明白如何获取此值。

基本上,我需要压缩文件并在应用程序获得一些例外时发送它。为此,我需要知道活动日志的名称。

我的应用会记录每日轮播,并查看日志名称laravel-2016-04-29.log

我知道使用PHP的名称,但我想可以知道使用Log类本身。

我认为最好的

use Carbon\Carbon;
...

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

我认为有更好的方法

1 个答案:

答案 0 :(得分:0)

几天前我碰巧在Laravel日志中挖掘了一些东西,可能还有一个解决方案。

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,因此无法轻易提取路径。它存储在url的{​​{1}}属性中,遗憾的是受到保护,因此您需要扩展此类以获取路径。