php - Laravel:使用 `configureMonologUsing()` 的多个日志提供程序?

标签 php laravel laravel-5 monolog

我正在使用 configureMonologUsing() 添加两个自定义记录器。执行标准 SOLID 主体时,我有两个提供程序:ConsoleLoggerProviderMailLogProvider

这两个都有一个类似的寄存器:

public function register()
{
    app()->configureMonologUsing(function(\Monolog\Logger $monolog) {
        $monolog->pushHandler(new HandlerClass());
    });
}

但是,我注意到 over logger 会覆盖另一个 logger...我该如何堆叠这些?

我也尝试过使用 boot(),但没有用。我找不到任何其他方法来添加到 Monolog 堆栈。

最好,我也想堆叠到 Laravel 的内置记录器上。

最佳答案

我(终于)找到了我的问题的答案:

在我的提供商中,我没有使用 configureMonologUsing(),而是使用了 Log::getMonolog()->pushHandler([..])

行得通!所有记录器,包括内置的 Laravel 文件记录器,都在触发。最后!

(老实说,几天来我一直在寻找添加到 Monolog 堆栈的方法;我显然没有按正确的术语进行搜索)

关于php - Laravel:使用 `configureMonologUsing()` 的多个日志提供程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44770013/

相关文章:

php - 提取 $_GET 变量的特定部分或 URL 本身

php - 为什么这个 MySQL 查询在 PHP 代码中不起作用?

php - 如何在 Laravel 5.2 中获得与外键的多对多关系?

mysql - 将数组存储在数据库中

Laravel Scout 配置 AWS elasticSearch 服务

php - 拉拉维尔 5 : Trying to get property of non-object error with relationships

php - PHP-表单,发布到同一页面,错误处理,防止重新提交

php - Composer 安装 Laravel : Your requirements could not be resolved to an installable set of packages

javascript - Vue.js 2 关于数据加载的困惑

php - 在大型项目中使用 MySQL——是否有多个数据库?