<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
ASP.NET Core支援適用於各種內建和第三方紀錄檔記錄提供應用程式的紀錄檔記錄API。本文介紹瞭如何將紀錄檔記錄API與內建提供應用程式一起使用。
紀錄檔記錄提供應用程式顯示或儲存紀錄檔。例如,控制檯提供應用程式在控制檯上顯示紀錄檔,Azure Application Insights提供應用程式將這些紀錄檔儲存在Azure Application Insights中。要新增提供應用程式,請在Program.cs中呼叫提供程式的Add{provider name}擴充套件方法:
public static void Main(string[] args) { var webHost = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .ConfigureAppConfiguration((hostingContext, config) => { var env = hostingContext.HostingEnvironment; config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true); config.AddEnvironmentVariables(); }) .ConfigureLogging((hostingContext, logging) => { //新增appsettings.json中關於紀錄檔的Logging節點設定 logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); //紀錄檔控制檯記錄提供程式 logging.AddConsole(); //紀錄檔Debug記錄提供程式 logging.AddDebug(); //紀錄檔EventSource記錄提供程式 logging.AddEventSourceLogger(); }) .UseStartup<Startup>() .Build(); webHost.Run(); }
預設專案模板呼叫CreateDefaultBuilder,該操作將新增紀錄檔記錄(控制檯、DEBUG、EventSource)提供給應用程式:
public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>();
建立紀錄檔可以從依賴注入(DI)中獲取ILogger<TCategoryName>物件。以下Razor頁面範例會建立級別為Information且類別為AboutModel類(Models/AboutModel)的紀錄檔:
public class AboutModel { private readonly ILogger _logger; public AboutModel(ILogger<AboutModel> logger) { //ILogger是Core內建紀錄檔元件,預設已經注入,無需再次手動注入 _logger = logger; } public void OnGet() { var Message = $"About page visited at {DateTime.UtcNow.ToLongTimeString()}"; _logger.LogInformation("Message displayed: {Message}", Message); } } private readonly ILogger<AboutModel> _logger; public HomeController(ILogger<AboutModel> logger) { _logger = logger; } public IActionResult Index() { AboutModel aboutModel = new AboutModel(_logger); aboutModel.OnGet(); return View(); }
通過Kestral伺服器啟動偵錯:
看看控制檯輸出紀錄檔記錄:
紀錄檔“級別”代表所記錄事件的嚴重程度。紀錄檔“類別”是與每個紀錄檔關聯的字串。ILogger<T>範例會建立“類別”為型別T的完全限定名稱的紀錄檔。
要將紀錄檔寫入Startup類,建構函式簽名需包含ILogger引數:
public class Startup { private readonly ILogger _logger; public Startup(IConfiguration configuration, ILogger<Startup> logger) { Configuration = configuration; _logger = logger; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { _logger.LogInformation("Added TodoRepository to services"); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { _logger.LogInformation("In Development environment"); } } }
通過Kestral伺服器啟動偵錯看看控制檯輸出紀錄檔記錄:
如果使用CreateDefaultBuilder,則可自行選擇提供應用程式來替換預設應用程式。呼叫 ClearProviders,然後新增所需的應用程式。
public class Program { public static void Main(string[] args) { var host = CreateWebHostBuilder(args).Build(); var logger = host.Services.GetRequiredService<ILogger<Program>>(); logger.LogInformation("Seeded the database."); host.Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .ConfigureLogging(logging => { logging.ClearProviders(); logging.AddConsole(); }); }
通過Kestral伺服器啟動偵錯看看控制檯輸出紀錄檔記錄:
紀錄檔記錄提供程式設定由一個或多個設定提供程式提供:
例如,紀錄檔記錄設定通常由應用設定檔案的Logging部分提供。以下範例顯示了典型 appsettings.Development.json 檔案的內容:
{ "Logging": { "LogLevel": { "Default": "Debug", "System": "Information", "Microsoft": "Information" }, "Console": { "IncludeScopes": true } } }
Logging屬性可具有LogLevel和紀錄檔提供程式屬性(顯示控制檯)。Logging下的LogLevel屬性指定了用於記錄所選類別的最低階別。在本例中,System和Microsoft類別在Information級別記錄,其他均在Debug級別記錄。如果提供程式支援紀錄檔作用域,則IncludeScopes將指示是否啟用這些域。
每個紀錄檔都指定了一個LogLevel值。紀錄檔級別指示嚴重性或重要程度。如果LogLevel是Warning級別,那麼跟蹤Trace,Debug,Information級別將不會記錄。ASP.NET Core 定義了以下紀錄檔級別(按嚴重性從低到高排列):
適用於ASP.NET Core的第三方紀錄檔記錄框架,連結地址官方檔案中有:
例如使用NLog:NLog是一個靈活的免費紀錄檔記錄平臺,適用於各種.NET平臺,包括.NET標準。NLog可以輕鬆寫入多個目標。(資料庫,檔案,控制檯)並即時更改紀錄檔記錄設定。
到此這篇關於ASP.NET Core記錄紀錄檔的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45