AspNetCore 使用NLog日志,NLog是基于.NET平台开的类库!(又一神器)
2018-11-14 14:04
1051 查看
NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码。
NLog是一个简单灵活的.NET日志记录类库。通过使用NLog,我们可以在任何一种.NET语言中输出带有上下文的(contextual information)调试诊断信息,根据喜好配置其表现样式之后发送到一个或多个输出目标(target)中。
NLog的API非常类似于log4net,且配置方式非常简单。NLog使用路由表(routing table)进行配置,但log4net却使用层次性的appender配置,这样就让NLog的配置文件非常容易阅读,并便于今后维护。
如何使用?
1.创建一个新的ASP.NET Core项目
2.添加项目依赖
3.在项目目录下添加nlog.config文件:
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" internalLogLevel="Warn" internalLogFile="c:\temp\internal-nlog.txt"> <!-- 加载ASP.NET Core插件 --> <extensions> <add assembly="NLog.Web.AspNetCore"/> </extensions> <!-- 输出目的地 --> <targets> <!-- 输出到文件,这个文件记录所有日志 --> <target xsi:type="File" name="allfile" fileName="c:\temp\nlog-all-${shortdate}.log" layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}" /> <!-- 另外一个日志记录文件,户口也跳过Microsoft开头相关日志信息 --> <target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-own-${shortdate}.log" layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}| ${message} ${exception}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" /> <!-- write to the void aka just remove --> <target xsi:type="Null" name="blackhole" /> </targets> <!-- 写入目的地的规则 --> <rules> <!--全部记录,包括Microsoft开头的相关日志信息--> <logger name="*" minlevel="Trace" writeTo="allfile" /> <!--跳过Microsoft开头的相关日志信息--> <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" /> <logger name="*" minlevel="Trace" writeTo="ownFile-web" /> </rules> </nlog>
3.将nlog.config复制到bin文件夹
4.在startup.cs文件中添加
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using NLog.Extensions.Logging; using NLog.Web; namespace NlogDemo { public class Startup { public Startup(IConfiguration configuration,IHostingEnvironment env) { Configuration = configuration; //配置nlog env.ConfigureNLog("nlog.config"); } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { //把nlog添加到.net core loggerFactory.AddNLog(); //add NLog.Web app.AddNLogWeb(); if (env.IsDevelopment()) { app.UseBrowserLink(); app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } } }
5.记录日志
public class HomeController : Controller { private readonly ILogger<HomeController> _logger; public HomeController(ILogger<HomeController> logger) { _logger = logger; } public IActionResult Index() { _logger.LogInformation("Index page says hello"); return View(); }
总结:
在我自己学习Nlog的时候,少了关键的一部那就是第三步,讲config输出到bin!!!
相关文章推荐
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- RDIFramework.NET — 基于.NET的快速信息化系统开发框架- 5.4平台日志、异常管理、生成自动升级配置文件模块
- 使用axis2访问webservice(webserivice基于.net平台实现)
- 使用python构建基于hadoop的mapreduce日志分析平台
- .NET中使用NLog记录日志
- 在ASP.NET MVC 3中使用日志记录组件Elmah和NLog
- 基于.NET平台的Flash应用 axShockwaveFlash控件使用
- 线程池 And 线程池的使用(基于.net平台)
- Asp.Net Core 2.0 之旅---NLog日志的使用教程
- ASP.NET Core 开发-Logging 使用NLog 写日志文件
- 【开发笔记】 .Net平台下log4Net日志的使用
- .Net语言 APP开发平台——Smobiler学习日志:基于Access数据库的Demo
- 线程池 And 线程池的使用(基于.net平台)
- ASP.NET5 REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
- uoLib - .Net 项目基础类库 基于C#, 可用于.Net Framework 2.0/3.5, 免费下载使用
- 使用python构建基于hadoop的mapreduce日志分析平台
- Asp.net Core中使用NLog,并封装成公共的日志方法
- [ZZ]线程池 And 线程池的使用(基于.net平台)
- [转]ASP.NET Core 开发-Logging 使用NLog 写日志文件
- RDIFramework.NET — 基于.NET的快速信息化系统开发框架- 5.4平台日志、异常管理、生成自动升级配置文件模块