日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

lumen 错误&日志

發布時間:2023/12/19 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 lumen 错误&日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、簡介

開始一個新的Lumen項目的時候,錯誤和異常處理已經默認為你配置好了。此外,Lumen還集成了提供各種功能強大日志處理器的Monolog日志庫。

2、配置

2.1 錯誤詳情

配置文件.env中的APP_DEBUG配置選項控制瀏覽器顯示的錯誤詳情數量。

對本地開發而言,你應該設置環境變量APP_DEBUG值為true。在生產環境,該值應該被設置為false

3、異常處理器

所有異常都由類AppExceptionsHandler處理,該類包含兩個方法:reportrender。下面我們詳細闡述這兩個方法。

3.1 report方法

report方法用于記錄異常并將其發送給外部服務如Bugsnag。默認情況下,report方法只是將異常傳遞給異常被記錄的基類,你可以隨心所欲的記錄異常。

例如,如果你需要以不同方式報告不同類型的異常,可使用PHP的instanceof比較操作符:

/**
 * 報告或記錄異常
 *
 * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
 *
 * @param  Exception  $e
 * @return void
 */
public function report(Exception $e){
    if ($e instanceof CustomException) {
        //
    }

    return parent::report($e);
}

通過類型忽略異常

異常處理器的$dontReport屬性包含一個不會被記錄的異常類型數組,默認情況下,404錯誤異常不會被寫到日志文件,如果需要的話你可以添加其他異常類型到這個數組。

3.2 render方法

render方法負責將給定異常轉化為發送給瀏覽器的HTTP響應,默認情況下,異常被傳遞給為你生成響應的基類。然而,你可以隨心所欲地檢查異常類型或者返回自定義響應:

/**
 * 將異常渲染到HTTP響應中
 *
 * @param  IlluminateHttpRequest  $request
 * @param  Exception  $e
 * @return IlluminateHttpResponse
 */
public function render($request, Exception $e){
    if ($e instanceof CustomException) {
        return response()->view('errors.custom', [], 500);
    }

    return parent::render($request, $e);
}

4、HTTP異常

有些異常描述來自服務器的HTTP錯誤碼,例如,這可能是一個“頁面未找到”錯誤(404),“認證失敗錯誤”(401)亦或是程序出錯造成的500錯誤,為了在應用中生成這樣的響應,使用如下方法:

abort(404);

abort方法會立即引發一個會被異常處理器渲染的異常,此外,你還可以像這樣提供響應描述:

abort(403, 'Unauthorized action.');

該方法可在請求生命周期的任何時間點使用。

5、日志

Lumen日志工具基于強大的Monolog庫,默認情況下,Lumen被配置為在storage/logs目錄下每日為應用生成日志文件,你可以使用Log門面編寫日志信息到日志中:

<?php

namespace AppHttpControllers;

use Log;
use AppUser;
use AppHttpControllersController;

class UserController extends Controller{
    /**
     * 顯示指定用戶的屬性
     *
     * @param  int  $id
     * @return Response
     */
    public function showProfile($id)
    {
        Log::info('Showing user profile for user: '.$id);
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

該日志記錄器提供了RFC 5424中定義的七種日志級別:alert,critical,error,warning,notice,infodebug

Log::alert($error);
Log::critical($error);
Log::error($error);
Log::warning($error);
Log::notice($error);
Log::info($error);
Log::debug($error);

5.1上下文信息

上下文數據數組也會被傳遞給日志方法。上下文數據將會和日志消息一起被格式化和顯示:

Log::info('User failed to login.', ['id' => $user->id]);

總結

以上是生活随笔為你收集整理的lumen 错误&amp;日志的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。