Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging Laravel日志未显示行和文件_Logging_Laravel 5.2 - Fatal编程技术网

Logging Laravel日志未显示行和文件

Logging Laravel日志未显示行和文件,logging,laravel-5.2,Logging,Laravel 5.2,我的日志记录如下: Log::debug("test"); 这是文件中的行: [2016-09-09 00:02:03]本地调试:测试 如何配置日志以写入行和文件 谢谢您实际上可以配置Laravel logger来完成许多事情。我以前做过,在你的情况下会是这样的: app('log')->getMonolog()->pushProcessor(function ($record) { if (array_get($record, 'level_name') === 'DEB

我的日志记录如下:

Log::debug("test");
这是文件中的行:

[2016-09-09 00:02:03]本地调试:测试

如何配置日志以写入行和文件


谢谢

您实际上可以配置Laravel logger来完成许多事情。我以前做过,在你的情况下会是这样的:

app('log')->getMonolog()->pushProcessor(function ($record) {
    if (array_get($record, 'level_name') === 'DEBUG') {
        // ...
    }

    return $record;
});
[2016-09-09 09:21:29] local.DEBUG: Debug info "My debug message" on file .../app/Http/Controllers/PresentationController.php:15  
主要的问题是:您试图添加实际上不可能与PHP一致的信息,即包含触发日志函数的代码的文件和行。在您的例子中,您正在使用Facade调用方法,该方法将解析为Laravel的日志编写器,该日志编写器反过来调用Monolog包,然后该包将触发您的处理器(这是一个闭包)。试图追溯你的过去是愚蠢的事

因此,在我看来,你有两种选择可以轻松做到这一点:

1) 只需在日志记录时声明文件和行,并将其作为
上下文传递给日志编写器

Log::debug('My debug message', ['file' => __FILE__, 'line' => __LINE__]);
2) 您可能知道,Laravel日志中通常包含文件和行信息的原因与记录器本身无关,而是与PHP异常的内置
\uuu toString
方法有关,该方法随堆栈跟踪一起输出。如果我们可以利用这一点来实现我们想要的呢

<?php

class DebugInfo extends \Exception
{
    public function __toString()
    {
        return 'Debug info "'.$this->getMessage().'" on file '.$this->getFile().':'.$this->getLine();
    }
}
您的日志如下所示:

app('log')->getMonolog()->pushProcessor(function ($record) {
    if (array_get($record, 'level_name') === 'DEBUG') {
        // ...
    }

    return $record;
});
[2016-09-09 09:21:29] local.DEBUG: Debug info "My debug message" on file .../app/Http/Controllers/PresentationController.php:15  

作为补充说明,如果您希望为调试目的向自己发送消息,我建议尝试使用。

由于您是手动记录数据的,我想您可以自己编写文件名和行吗?