承德网站建设报价,企业网站制作免费,优化网站的软件,wordpress防偷代码前言
昨天分享了在 .NET Core Console 项目中应用 NLog 写日志的详细例子#xff0c;有几位小伙伴私信说 ASP.NET Core Web Api 项目中无法使用#xff0c;其实在 ASP.NET Core Web Api 项目中应用 NLog 写日志#xff0c;跟 .NET Core Console 项目是有些不一样的#xf…
前言
昨天分享了在 .NET Core Console 项目中应用 NLog 写日志的详细例子有几位小伙伴私信说 ASP.NET Core Web Api 项目中无法使用其实在 ASP.NET Core Web Api 项目中应用 NLog 写日志跟 .NET Core Console 项目是有些不一样的今天我特地写了一个在 ASP.NET Core Web Api 项目中应用 NLog 写日志的例子我们来看看如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志
不废话直接上 Step By Step 例子。
Step By Step 步骤 创建一个 ASP.NET Core Web Api 项目 下载 Nuget 包 NLog.Web.AspNetCore 手动添加 nlog.config 文件并设置 复制到输出目录-如果较新则复制 可直接复制粘贴 《分享一个 .NET Core Console 项目中应用 NLog 写日志的详细例子》 一文中的 附录NLog.config 内容 在 Program.cs 注入 NLog 服务留意注释 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 ILoggerXFaceController _logger;// 在构造方法中注入 ILogger 实例public TestController(ILoggerXFaceController logger){_logger logger;}[HttpGet][Route(cdata)]public IActionResult Init(){var s OK;// 写日志_logger.LogInformation($Return: {s});return Ok(s);}}
}附录NLog.config 内容
参见 《分享一个 .NET Core Console 项目中应用 NLog 写日志的详细例子》 一文中的 附录NLog.config 内容
总结
NLog 在 .NET Core Console 项目和 ASP.NET Core Web Api 项目中所使用的包并不相同注册到容器的方式也不一样这主要是由于它们的应用架构和生命周期不同所导致的。
.NET Core Console 项目没有像 ASP.NET Core Web Api 那样内置的依赖注入容器因此在 Console 项目中需要手动配置 NLog。而 ASP.NET Core Web Api 项目使用内置的依赖注入容器来管理服务的生命周期和依赖关系在这种情况下可以将 NLog 配置为服务之一然后将其注入到容器中。
这些差异在注册其他第三方包时也会有大家可仔细辨别体会。 我是老杨一个奋斗在一线的资深研发老鸟让我们一起聊聊技术聊聊人生。 都看到这了求个点赞、关注、在看三连呗感谢支持。