亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

    服務(wù)端日志通過(guò)請(qǐng)求中間件來(lái)完成,中間件會(huì)以Trace級(jí)別記錄請(qǐng)求和應(yīng)答詳情,以Debug級(jí)別記錄請(qǐng)求耗時(shí)。服務(wù)的請(qǐng)求日志的名稱為ServerRequest.Logger

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

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

    客服端的請(qǐng)求詳細(xì)日志,是基于IHttpClientFactory以及HttpClient框架,在客戶端請(qǐng)求管道處理中加入了日志記錄管道。請(qǐng)求處理管道會(huì)以Trace級(jí)別記錄請(qǐng)求和應(yīng)答詳情,另外,如果請(qǐng)求發(fā)生異常,將以Error級(jí)別記錄異常詳情。客戶端請(qǐng)求日志的名稱為ClientRequest.Logger

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

一、開(kāi)啟服務(wù)端請(qǐng)求日志

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

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

二、開(kāi)啟客戶端請(qǐng)求日志

    要開(kāi)啟客戶端日志,只需引用Xfrogcn.AspNetCore.Extensions庫(kù),然后在Startup類(lèi)中,配置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ì)示例請(qǐng)參考GitHub

    Xfrogcn.AspNetCore.Extensions地址:GitHub Gitee

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

相關(guān)文章

最新評(píng)論