Environment
- Lumen (5.5.2) (Laravel Components 5.5.*)
Process
基于年月创建接口请求日志表,如果已经存在,则不创建。在 Lumen 框架中,将逻辑代码写在 Terminable 中间件中,通过 Session 进行异步记录,不占用接口请求时间。
<?php
namespace App\Http\Middleware;
use Closure;
use Validator;
use Illuminate\Support\Facades\DB;
class RequestLog
{
public function handle($request, Closure $next)
{
return $next($request);
}
public function terminate($request, $response)
{
if (env('INTERFACE_LOG_SWITCH', 0)) {
if (! empty($_SERVER["HTTP_CLIENT_IP"])) {
$ip = $_SERVER["HTTP_CLIENT_IP"];
} elseif (! empty($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif(! empty($_SERVER["REMOTE_ADDR"])) {