如何做php分頁(yè)網(wǎng)站seo查詢(xún)愛(ài)站
前言
昨天分享了在 .NET Core Console 項(xiàng)目中應(yīng)用 NLog 寫(xiě)日志的詳細(xì)例子,有幾位小伙伴私信說(shuō) ASP.NET Core Web Api 項(xiàng)目中無(wú)法使用,其實(shí)在 ASP.NET Core Web Api 項(xiàng)目中應(yīng)用 NLog 寫(xiě)日志,跟 .NET Core Console 項(xiàng)目是有些不一樣的,今天我特地寫(xiě)了一個(gè)在 ASP.NET Core Web Api 項(xiàng)目中應(yīng)用 NLog 寫(xiě)日志的例子,我們來(lái)看看如何在 ASP.NET Core Web Api 項(xiàng)目中應(yīng)用 NLog 寫(xiě)日志?
不廢話(huà),直接上 Step By Step 例子。
Step By Step 步驟
-
創(chuàng)建一個(gè) ASP.NET Core Web Api 項(xiàng)目
-
下載 Nuget 包
NLog.Web.AspNetCore
-
手動(dòng)添加 nlog.config 文件,并設(shè)置 復(fù)制到輸出目錄-如果較新則復(fù)制
- 可直接復(fù)制粘貼 《分享一個(gè) .NET Core Console 項(xiàng)目中應(yīng)用 NLog 寫(xiě)日志的詳細(xì)例子》 一文中的
附錄:NLog.config 內(nèi)容
- 可直接復(fù)制粘貼 《分享一個(gè) .NET Core Console 項(xiàng)目中應(yīng)用 NLog 寫(xiě)日志的詳細(xì)例子》 一文中的
-
在 Program.cs 注入 NLog 服務(wù)(留意注釋)
using NLog.Web;var builder = WebApplication.CreateBuilder(args);// Add services to the container.builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen();// 注入 NLog builder.Logging.AddNLog("nlog.config");var app = builder.Build();// Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) {app.UseSwagger();app.UseSwaggerUI(); }app.UseAuthorization();app.MapControllers();app.Run();
-
在 Controller 中使用
using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Mvc; using System.Text;namespace NLogSample.Controllers {[ApiController][Route("iclock")]public class TestController : ControllerBase{private readonly ILogger<XFaceController> _logger;// 在構(gòu)造方法中注入 ILogger 實(shí)例public TestController(ILogger<XFaceController> logger){_logger = logger;}[HttpGet][Route("cdata")]public IActionResult Init(){var s = "OK";// 寫(xiě)日志_logger.LogInformation($"Return: {s}");return Ok(s);}} }
附錄:NLog.config 內(nèi)容
參見(jiàn) 《分享一個(gè) .NET Core Console 項(xiàng)目中應(yīng)用 NLog 寫(xiě)日志的詳細(xì)例子》 一文中的 附錄:NLog.config 內(nèi)容
總結(jié)
NLog 在 .NET Core Console 項(xiàng)目和 ASP.NET Core Web Api 項(xiàng)目中所使用的包并不相同,注冊(cè)到容器的方式也不一樣,這主要是由于它們的應(yīng)用架構(gòu)和生命周期不同所導(dǎo)致的。
.NET Core Console 項(xiàng)目,沒(méi)有像 ASP.NET Core Web Api 那樣內(nèi)置的依賴(lài)注入容器,因此,在 Console 項(xiàng)目中,需要手動(dòng)配置 NLog。而 ASP.NET Core Web Api 項(xiàng)目,使用內(nèi)置的依賴(lài)注入容器來(lái)管理服務(wù)的生命周期和依賴(lài)關(guān)系,在這種情況下,可以將 NLog 配置為服務(wù)之一,然后將其注入到容器中。
這些差異,在注冊(cè)其他第三方包時(shí)也會(huì)有,大家可仔細(xì)辨別體會(huì)。
我是老楊,一個(gè)奮斗在一線的資深研發(fā)老鳥(niǎo),讓我們一起聊聊技術(shù),聊聊人生。
都看到這了,求個(gè)點(diǎn)贊、關(guān)注、在看三連唄,感謝支持。