欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP.NET Core擴(kuò)展庫之Http日志的使用詳解

 更新時間:2021年04月13日 09:45:38   作者:xfrog  
這篇文章主要介紹了ASP.NET Core擴(kuò)展庫之Http日志的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下

    最佳實踐都告訴我們不要記錄請求的詳細(xì)日志,因為這有安全問題,但在實際開發(fā)中,請求的詳細(xì)內(nèi)容對于快速定位問題卻是非常重要的,有時也是系統(tǒng)的強(qiáng)力證據(jù)。Xfrogcn.AspNetCore.Extensions擴(kuò)展庫提供了服務(wù)端和客戶端的詳細(xì)日志功能,通過配置可以開啟。

    服務(wù)端日志通過請求中間件來完成,中間件會以Trace級別記錄請求和應(yīng)答詳情,以Debug級別記錄請求耗時。服務(wù)的請求日志的名稱為ServerRequest.Logger

    要開啟服務(wù)端詳情日志,只需將擴(kuò)展庫配置中的ServerRequestLevel屬性設(shè)置為Verbose級別,該配置默認(rèn)是Information,故不會記錄請求詳情及請求耗時。

    開啟請求詳情后,由于需要讀取請求和應(yīng)答的詳細(xì)內(nèi)容,對性能將有所影響。同時,由于要讀取請求體,將自動開啟請求的緩沖。只有在需要記錄詳細(xì)日志時,才會讀取詳情,故關(guān)閉后對于性能不會產(chǎn)生太大影響。

    客服端的請求詳細(xì)日志,是基于IHttpClientFactory以及HttpClient框架,在客戶端請求管道處理中加入了日志記錄管道。請求處理管道會以Trace級別記錄請求和應(yīng)答詳情,另外,如果請求發(fā)生異常,將以Error級別記錄異常詳情??蛻舳苏埱笕罩镜拿Q為ClientRequest.Logger

    要開啟客戶端請求詳細(xì)日志,只需將擴(kuò)展庫配置中的EnableClientRequestLog設(shè)置為true,同時將ClientRequestLevel設(shè)置為Verbose,該設(shè)置的默認(rèn)值為Information。與服務(wù)端一樣,只有在符合條件時才會記錄請求與應(yīng)答詳情,故如果未開啟,對性能不會產(chǎn)生影響。注意,當(dāng)EnableClientRequestLog設(shè)置為false時,擴(kuò)展庫不會將日志請求管道插入客戶端請求管道中。該設(shè)置默認(rèn)為true。

一、開啟服務(wù)端請求日志

    要在服務(wù)端開啟請求詳細(xì)日志,只需引用Xfrogcn.AspNetCore.Extensions庫,然后在Startup類中,配置服務(wù)請求級別為Verbose:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddExtensions(Configuration, config=>
        {
            config.FileLog = true;
            config.ConsoleLog = true;
            // 設(shè)置服務(wù)端請求日志級別為Verbose
            config.ServerRequestLevel = Serilog.Events.LogEventLevel.Verbose;
        });
        services.AddControllers();
    }

二、開啟客戶端請求日志

    要開啟客戶端日志,只需引用Xfrogcn.AspNetCore.Extensions庫,然后在Startup類中,配置ClientRequestLevel為Verbose, EnableClientRequestLog設(shè)置為true。

    class Program
    {
        static async Task Main(string[] args)
        {
            IServiceCollection services = new ServiceCollection()
                .AddExtensions(null, config =>
                {
                    config.EnableClientRequestLog = true;
                    config.ClientRequestLevel = Serilog.Events.LogEventLevel.Verbose;
                    config.ConsoleLog = true;
                });

            IServiceProvider provider = services.BuildServiceProvider();
            var clientFactory = provider.GetRequiredService<IHttpClientFactory>();
            HttpClient client = clientFactory.CreateClient();

            var response = await client.GetAsync("http://localhost:5000/weatherforecast");

            Console.ReadLine();
        }
    }

三、示例

    詳細(xì)示例請參考GitHub

    Xfrogcn.AspNetCore.Extensions地址:GitHub Gitee

以上就是ASP.NET Core擴(kuò)展庫之Http日志的使用詳解的詳細(xì)內(nèi)容,更多關(guān)于ASP.NET Core擴(kuò)展庫之Http日志的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論