【问题标题】:How to store laravel log file data into database(5.5) [closed]如何将 laravel 日志文件数据存储到数据库中(5.5)[关闭]
【发布时间】:2019-11-01 08:06:25
【问题描述】:

我需要将 Laravel 日志存储到我的数据库中。你能帮帮我吗?

【问题讨论】:

    标签: php laravel monolog


    【解决方案1】:

    转到 App/Exceptions/Handler.php 然后在 report() 函数中编写以下代码并将您的模型定义为 ErrorLog

            $data = [
                'id'      => $this->createUniversalUniqueIdentifier(),
                'file'    => $exception->getFile(),
                'line'    => $exception->getLine(),
                'message' => $exception->getMessage(),
                'trace'   => $exception->getTraceAsString(),
            ];
    
              $dataArr =['id'     => $data['id'],
                 'file'           => $data['file'],
                 'error_summary'  => 'Line '.$data['line'].' '.$data['message'],
                 'log_trace'      => $data['trace']
                 ];
            ErrorLog::create($dataArr);
    

    你的模型文件应该是这样的 错误日志.php 受保护的 $table = '日志'; 受保护的 $fillable = ['ID', '文件', 'error_summary', 'log_trace' ];

    【讨论】:

      【解决方案2】:

      Laravel supports Monolog 用于处理日志。 Monolog 支持许多不同的处理程序,包括像MongoDB handler 这样的数据库处理程序。

      您可以通过在config/logging.php 文件中的channels 数组中添加一个新通道来使用 MongoDB 处理程序,例如:

      'channels' => [
          'mongolog' => [
              'driver'  => 'monolog',
              'handler' => Monolog\Handler\MongoDBHandler::class,
              'with' => [
                  'database' => 'mongo-database-name',
                  'collection' => 'log-collection-name',
              ],
          ],
      

      然后您可以在.env 文件中将默认日志通道设置为mongolog,例如LOG_CHANNEL=mongolog.

      【讨论】:

      • 但这只在 laravel 5.6+ 中支持
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多