C# 配置日志記錄

2f44bdee6971bab107fb7d1a1737a5d4.png

在 .NET Core 中,可以給配置文件使用提供程序,例如從 JSON 或 XML文件、環境變量或命令行參數中讀取配置。只需要從 NuGet 包 Microsoft.ExtensionsConfiguration 中創建一個ConfigurationBuilder,并向此構建器添加提供程序。要添加 JSON 提供程序,需要調用擴展方法 AddJsonFile。構建器的 Build 方法返回一個實現 IConfiguration 的對象。可以使用此接口通過任何已配置的提供程序來訪問已配置值。下面的示例代碼從配置中檢索 Logging 部分,并將其傳遞給 RegisterServices 方法:

var configurationBuilder = new ConfigurationBuilder() ;
configurationBuilder.AddJsonFile("appsettings.json");
IConfiguration?configuration?= configurationBuilder.Build();
RegisterServices(configuration);

4e317a0ed8487b228fec49c143392602.png

示例應用程序的配置文件根據提供程序和類別配置不同的配置值。對于 Debug 提供程序,LogLevel 設置為 Information。這樣,對于所有類別,Information及以上級別都記錄到 Visual Studio 的 Output 窗口。對于 Console 提供程序,LogLevel 根據類別的不同而不同。在 Console 提供程序的配置之下,所有其他提供程序的默認配置都是基于類別用特定的日志級別定義:

{"Logging":  {"Debug":??{"LogLevel": "Information"},"Console":  {"LogLevel":  {"LoggingConfigurationSample.SampleController": "Information","Default": "Warning"}},"LogLevel":  {"Default": "Warning","System": "Information","LoggingConfigurationSample.SampleController": "Warning"}}
}

297663eef9e5167dd8153752544f290f.png

在日志配置就緒后,現在調用 AddConfiguration 方法,以傳遞對IConfiguration 對象的引用。AddConfiguration 方法需要配置文件中 Logging部分的內容:

static?void?RegisterServices(IConfiguration?configuration)
{var services = new ServiceCollection(); services.AddLogging(builder =>{builder.AddConfiguration(configuration.GetSection("Logging")).AddConsole();?
#if?DEBUGbuilder.AddDebug(); 
#endif});services.AddScoped<SampleControler>();AppServices = services.BuildServiceProvider();
}

3d55e1893863e0944da10c0c0c4fe180.png

注意:

Microsoft.Extensions.Configuration 的體系結構和使用不同的配置提供程序。

a08f4adff63dadc7e0413aaf1a774a7b.png

0806ad24b1ab218fbc39c30a2812e49d.png

?微信公眾號?

DotNet講堂

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287178.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287178.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287178.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用“using” 的 “Cursor”

很多時候&#xff0c;我們會寫下面的這段代碼&#xff1a; private void button1_Click(object sender, EventArgs e) {Cursor cursor Cursor.Current;this.Cursor Cursors.WaitCursor;LongTimeMethod();this.Cursor cursor; }private void LongTimeMethod() {for (int i 0…

《看聊天記錄都學不會C語言?太菜了吧》(21)(必懂!題解)在現實生活中,打擂臺比賽爭名次竟用的是冒泡排序?

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

ArcGIS 10.7如何獲取矢量多邊形所有折點的坐標(平面坐標和經緯度坐標)?

Descriptions:As shown in the figure below is a surface pattern spot, how to obtain the coordinates of each vertex (plane coordinates and latitude and longitude coordinates)? The results we want are as follows: Via data source,we get the information that…

Mahout分類算法學習之實現Naive Bayes分類示例

1.簡介 (1) 貝葉斯分類器的分類原理發源于古典概率理論&#xff0c;是通過某對象的先驗概率&#xff0c;利用貝葉斯公式計算出其后驗概率&#xff0c;即該對象屬于某一類的概率&#xff0c;選擇具有最大后驗概率的類作為該對象所屬的類。樸素貝葉斯分類器(Naive Bayes Classifi…

linux重新做yum,Linux 系統 Centos 7.7 下重裝yum

0. 背景不小心誤刪除yum后&#xff0c;開始想辦法重新安裝。1. 重裝 yum1.1 步驟需要下面4個包&#xff0c;我們需要下載到它們yum-metadata-parserpython-iniparseyum-plugin-fastestmirroryum-3.4.3下載后&#xff0c;安裝它們。1.2 去哪里下載&#xff1f;當然&#xff0c;搜…

jenkins2 groovy語法

文章來自&#xff1a;http://www.ciandcd.com文中的代碼來自可以從github下載&#xff1a; https://github.com/ciandcd安裝&#xff1a;wget https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.7.zipunzip apache-groovy-binary-2.4.7.zipsudo ln -s /home/osbox…

Android之glide加載圖片圓角效果

1 問題 Android加載圖片需要圓角化,有什么簡單粗暴的方法嗎?當然有,用我們的神器glide 2 解決辦法 1)簡單辦法 ImageView imageView = (ImageView)helper.getView(R.id.keepHomeAppImageview);Glide.with(mContext).asBitmap().load(iconUrl) // .ov…

一維條形碼***技術(Badbarcode)

【轉】http://future-sec.com/badbarcode.html 前言在日常生活中&#xff0c;條形碼隨處可見&#xff0c;特別在超市&#xff0c;便利店&#xff0c;物流業&#xff0c;但你們掃的條形碼真的安全嗎&#xff1f;之前TK教主在PacSec介紹的條形碼攻擊和twitter上的demo視頻太炫酷&…

ArcGIS 10.7 模型構建器Model Builder空間建模流程化作業案例----影像拼接與掩膜裁剪

Model Builder(模型構建器)是一個用來創建、編輯和管理空間分析模型的應用程序,是一種可視化的編程環境,通過對現有工具的組合完成新模型或軟件的制作,為設計和實現空間處理模型(包括工具、腳本和數據)提供了一個圖形化的模型框架。 本文以影像數據的拼接和掩膜裁剪為例…

《看聊天記錄都學不會C語言?太菜了吧》(22)(必懂!題解 1-100 內素數)素數原來是質數!為什么你不早說!

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

Hello Playwright:(4)自動化測試

利用 Playwright 提供的 API&#xff0c;我們在瀏覽器上做的很多事情都可以自動化。例如&#xff0c;搜索數據、填寫表單和下載文件等等。但最適合的工作&#xff0c;就是自動化測試 Web 應用程序。自動化測試測試是軟件開發中的一項基本任務&#xff0c;至少&#xff0c;你需要…

通才和專家:如何選擇

原文&#xff1a;Generalists and specialists: thoughts on hiring作者&#xff1a;Nicholas C. Zakas 我的職業生涯經歷過各種規模的公司&#xff0c;從非常小的五人創業團隊到 13000 人的大公司雅虎&#xff0c;再到約 1000 人規模的 Box&#xff08;我目前所在&#xff09;…

Android之解決NestedScrollView嵌套ViewPager導致出現左右頁面滑動沖突

1 問題 NestedScrollView里面嵌勒ViewPagerTabLayout&#xff0c;導致在這個頁面監聽不到左右頁面滑動&#xff0c;需要解決這個監聽滑動問題。 2 解決辦法 val nestedScrollView: NestedScrollView mainView!!.findViewById(R.id.nestedScrollView)nestedScrollView.isFillV…

linux和裸機的區別,操作系統與裸機的區別

我們在學習stm32到一定階段可能會了解操作系統&#xff0c;然后便有這種問題產生&#xff0c;下面我就來粗略說說“操作系統與裸機的區別&#xff0c;以及stm32能運行什么操作系統&#xff0c;能運行linux系統嗎”等問題。操作系統與裸機的區別裸機運行的程序代碼&#xff0c;一…

ArcGIS 10.7拆分多部件要素(Multipart Features)至單部件要素的兩種方法

GIS中經常會出現多部件要素的現象,為了便于檢查拓撲等關系,需要將其拆分為單個的部件。例如,在用同一個圖層的多個圖斑去裁剪(Clip)時,或者將多個不相鄰的圖斑進行合并(merge)時,可能會產生多部件要素,本文演示ArcGIS10.7版本中常見的兩種拆分多部件要素至單部件要素…

spring-session + redis 實現集群 session 共享

2019獨角獸企業重金招聘Python工程師標準>>> 目前市面上實現session共享的方案有很多&#xff0c;其中比較常用的是使用Tomcat、Jetty等web服務器提供的session共享功能&#xff0c;以此將session內容統一存放在數據庫&#xff08;如mysql&#xff09;或者緩存&…

第三方的使用

1. MMDrawerController 抽屜效果 2.SVProgressHUD 透明指示層 3.SDCycleScrollView 無限輪播器 4.SDWebImage 異步圖片加載 5.RESideMenu 抽屜效果 6.AFNetworking 網絡請求 7.MJRefresh tableView上下拉刷新 8.MJExtension json轉模型 9.Masonry 布局適配框架 10.UMengSocia…

《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(10)無底洞的循環

本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新。 若…

業務流水號規則生成組件

對于很多業務系統都需要生成業務流水號&#xff0c;如果訂單號、購采單號等等&#xff1b;而這些業務流水號并不是簡單的一個增長數值&#xff0c;它們很多時候都有一些不同的規則來定義&#xff0c;如不同類型的字母或地區拼音簡寫等。為了更靈活生成這些有規則的業務流水號Be…

Android之奔潰提示com.google.gson.internal.LinkedTreeMap cannot be cast to java.util.HashMap

1 問題 Android端獲取服務端的數據然后我直接把數據轉hashMap提示錯誤如下&#xff0c; com.google.gson.internal.LinkedTreeMap cannot be cast to java.util.HashMap 2 解決辦法 直接轉Map集合即可 (t.data as Map<String, String>).forEach({if (KEEP_NAME.equals…