IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    在 laravel 的错误日志中记录 IP

    血衫非弧の一存发表于 2024-03-09 00:00:00
    love 0

    缘起是这种日志:

    image-20240310上午92427013

    一般来说这种日志在 nginx 上很常见,但穿透到 nginx 到实际的应用里,已经说明是有针对性的攻击行为了,需要记录在案。先把 IP 记录下来。

    要在 Laravel 中的错误日志中打印客户端 IP,你可以使用 Laravel 的异常处理机制:

    1. 打开 app/Exceptions/Handler.php 文件。

    2. 导入 Illuminate\Http\Request 类。

      use Illuminate\Http\Request;
      
    3. 在 report() 方法中,可以访问异常和请求。你可以在这里将客户端 IP 写入日志。

      image-20240310上午92905943

    4. 也可以用以下的方法,也做个记录:

      public function report(Exception $exception)
      {
          if ($this->shouldReport($exception)) {
              $this->logClientIP($exception, request());
          }
         
          parent::report($exception);
      }
      protected function logClientIP(Exception $exception, Request $request)
      {
          $ip = $request->ip();
          $message = $exception->getMessage();
          $trace = $exception->getTraceAsString();
          $log = "IP: $ip\nMessage: $message\nTrace: $trace";
         
          \Log::error($log);
      }
      


沪ICP备19023445号-2号
友情链接