标签:Core 中间件 System public NLog using logger Microsoft
⒈安装相关依赖
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:\temp\internal-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:\temp\nlog-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:\temp\nlog-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 }
标签:Core,中间件,System,public,NLog,using,logger,Microsoft 来源: https://www.cnblogs.com/fanqisoft/p/10801020.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。