【问题标题】:How to infor log every function in Controller Laravel如何在 Controller Laravel 中记录每个功能
【发布时间】:2021-09-27 06:56:47
【问题描述】:

在开发过程中,我需要记录每个函数中的所有内容 喜欢

class ExampleController extends Controller
{
      function myFunction($param1, $param2){
          Log::info("Start ExampleController@myFunction",[
              'param1' => $param1,
              'param2' => $param2,
          ]);
          
          // Code process at here

         Log::info("End ExampleController@myFunction",[
              'result' => $result
          ]);
      }
}

如何在不重写每个函数中的多行代码的情况下自动执行? 自动写入运行类和函数的日志?

【问题讨论】:

  • 创建中间件并在其上添加日志代码!
  • 你试过了吗?如果相关,请标记为完整!
  • 您可能想调试、排除故障,但从不记录所有功能。

标签: php laravel logging


【解决方案1】:

会给你一个可能对你有用的例子。

php artisan make:middleware CustomLog

打开该文件并添加如下代码

<?PHP

namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Log;

class CustomLog
{
    public function handle($request, Closure $next)
    {
       $response = $next($request);
       if (app()->environment('local')) {
       // Do you required changes is this array
       $log = [
            'URI' => $request->getUri(),
            'METHOD' => $request->getMethod(),
            'REQUEST_BODY' => $request->all(),
            'RESPONSE' => $response->getContent()
        ];
        Log::info(json_encode($log));
     }
     return $response;
    }
 }

新步骤是打开内核文件。将密钥 custom.log 分配给您的中间件。

protected $routeMiddleware = [
    'custom.log' => CustomLog::class
];

最后一步是

Route::get('function', 'AuthController@function')->middleware('custom.log');

【讨论】:

  • 感谢您的回答,但这与我的问题不符。我需要在我的控制器中记录所有功能。信息日志由“Start @ and parameters input”和“End @
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-16
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多