.Net Core 中使用NLog作为日志中间件
发布时间:2020-12-16 07:29:14 所属栏目:asp.Net 来源:网络整理
导读:⒈安装相关依赖 NLog NLog.Web.AspNetCore ⒉在项目的根目录中创建NLog配置文件 1 ? xml version="1.0" encoding="utf-8" ? 2 nlog xmlns ="http://www.nlog-project.org/schemas/NLog.xsd" 3 xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" 4 aut
⒈安装相关依赖 NLog NLog.Web.AspNetCore ⒉在项目的根目录中创建NLog配置文件 1 <?xml version="1.0" encoding="utf-8" ?> 2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 autoReload="true" 5 internalLogLevel="Info" 6 internalLogFile="c:tempinternal-nlog.txt"> 7 8 <!-- 启用asp.net核心布局渲染器- --> 9 <extensions> 10 <add assembly="NLog.Web.AspNetCore"/> 11 </extensions> 12 13 <!-- 要写入的目标 --> 14 <targets> 15 <!-- 将日志写入到文件中 --> 16 <target xsi:type="File" name="allfile" fileName="c:tempnlog-all-${shortdate}.log" 17 layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" /> 18 19 <!-- 另一个文件日志,只有自己的日志。使用一些ASP.NET核心渲染器 --> 20 <target xsi:type="File" name="ownFile-web" fileName="c:tempnlog-own-${shortdate}.log" 21 layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" /> 22 </targets> 23 24 <!-- 从记录器名称映射到目标的规则 --> 25 <rules> 26 <!--所有日志,包括来自Microsoft的日志--> 27 <logger name="*" minlevel="Trace" writeTo="allfile" /> 28 29 <!--跳过非关键的Microsoft日志,因此只记录自己的日志--> 30 <logger name="Microsoft.*" maxlevel="Info" final="true" /> 31 <!-- BlackHole without writeTo --> 32 <logger name="*" minlevel="Trace" writeTo="ownFile-web" /> 33 </rules> 34 </nlog> ⒊更改配置文件属性 ⒋修改Program.cs 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Threading.Tasks; 6 using Microsoft.AspNetCore; 7 using Microsoft.AspNetCore.Hosting; 8 using Microsoft.Extensions.Configuration; 9 using Microsoft.Extensions.Logging; 10 using NLog.Web; 11 12 namespace AutoMapperCore 13 { 14 public class Program 15 { 16 public static void Main(string[] args) 17 { 18 var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger(); 19 try 20 { 21 logger.Debug("init main"); 22 CreateWebHostBuilder(args).Build().Run(); 23 } 24 catch (Exception e) 25 { 26 logger.Error(e,"Stopped program because of exception"); 27 throw; 28 } 29 finally 30 { 31 NLog.LogManager.Shutdown(); 32 } 33 34 } 35 36 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 37 WebHost.CreateDefaultBuilder(args) 38 .UseStartup<Startup>() 39 .ConfigureLogging(logging => 40 { 41 logging.ClearProviders(); 42 logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); 43 44 }).UseNLog(); 45 } 46 } ⒌配置appsettings.json 1 { 2 "Logging": { 3 "LogLevel": { 4 "Default": "Trace",5 "Microsoft": "Information" 6 } 7 },8 "AllowedHosts": "*" 9 } ⒍在代码中注入ILogger写日志 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Threading.Tasks; 5 using AutoMapper; 6 using AutoMapperTest.Entities; 7 using Microsoft.AspNetCore.Mvc; 8 using Microsoft.Extensions.Logging; 9 10 namespace AutoMapperCore.Controllers 11 { 12 public class UsersController : Controller 13 { 14 private readonly IMapper _mapper; 15 private readonly ILogger<UsersController> _logger; 16 public UsersController(IMapper mapper,ILogger<UsersController> logger) 17 { 18 this._mapper = mapper; 19 this._logger = logger; 20 } 21 public IActionResult Index() 22 { 23 UsersInputDto input = new UsersInputDto() 24 { 25 id = 1,firstname = "fan",lastname = "qi",uname = "fanqisoft",pwd = "admin",enabled = 1 26 }; 27 _logger.LogInformation("Dto转换实体对象成功!"); 28 Users users = _mapper.Map<Users>(input); 29 return View(); 30 } 31 } 32 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在ASP.Net MVC中使用System.Guid作为主键?
- asp.net – 来自CodeBehind的GridView在C#Paging中无法正常
- asp.net-mvc – 尝试方法… HttpConfiguration …访问方法…
- asp.net – aspnet_compiler找到错误版本的System.Web.WebP
- asp.net-mvc-3 – 我可以在ASp.Net MVC中使用System.Web.UI
- asp.net – gzip压缩在Windows Azure网站
- asp.net neatUpload 支持大文件上传组件
- IIS部署的ASP.NET 5 BETA 8站点到IIS会给出HTTP错误500.19
- asp.net-mvc – 通过MvcContrib进行协作编程的MEF与便携式区
- asp.net – 服务器随机返回状态码为200的空响应
推荐文章
站长推荐
- asp.net – 在Global.asax文件中创建Timer
- asp.net-mvc – 可以为多个部署转换MVC视图,例如
- .net – CS0012:类型’System.Data.Linq.DataCo
- 如何以编程方式在ASP.NET MVC中显示/隐藏Razor V
- asp.net-mvc – 使用jQuery getJson发送list/arr
- asp.net-mvc-3 – 被重定向到错误loginUrl – >帐
- 在ASP.NET MVC中为复杂数据验证放置数据管理规则
- asp.net-mvc-3 – 我可以在ASP.Net MVC中使用Out
- .net – Umbraco vs DotNetNuke:无法决定哪一个
- asp.net-mvc – 如何设置html.EditorFor helper的
热点阅读