开发手册 欢迎您!
软件开发者资料库

.NET Core和ASP.NET Core 日志框架Nlog安装配置及示例代码

本文主要介绍.NET Core和ASP.NET Core的日志框架Nlog,通过Nuget安装的方法和配置文件的配置,以及Nlog的使用的示例代码。

1、NLog的安装

1).NET Core项目

在Nuget管理程序中,搜索'NLog' =》选中然后点击'安装'。然后再搜索"NLog.Extensions.Logging",然后点击安装。

2)ASP .NET Core项目

除上述安装的Nuget包,还需要安装NLog.Web.AspNetCore,同样上述方法,搜索安装即可。

相关文档:VS(Visual Studio)中Nuget的使用

注意:NLog.Config不是必需安装,它是用来生成配置文件的。

2、NLog的配置

1)NLog配置文件

>



layout="${date:format=HH\:mm\:ss}> ${message}"/>

layout="${date:format=HH\:mm\:ss} | ${level:padding=-5} | ${message}" />

fileName="${basedir}/Logs/Error/${shortdate}/error.txt"
layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />

fileName="${basedir}/Logs/Info/${shortdate}/info.txt"
layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />







2).NET Core控制台项目

本文示例不使用自动生成配置文件,通过上述配置文件内容,在Program.cs的同级目录,新建NLog.Config配置文件。在新建的NLog.config配置文件上,点击"鼠标右键"=》点击"属性"=》在"复制到输出目录"中=》选择"始终复制"。

3)ASP .NET Core项目

依照上述步骤新建NLog.Config配置文件。

3、NLog使用代码

1).NET Core控制台项目

using System;using System.Threading.Tasks;using NLog;namespace ConsoleApp1{    class Program    {        static void Main(string[] args)        {            //加载NLog.config配置文件            LogManager.LoadConfiguration("NLog.config");             Logger logger = LogManager.GetCurrentClassLogger();            logger.Trace("Trace Message");            logger.Debug("Debug Message");            logger.Info("Info Message");            logger.Error("Error Message");            logger.Fatal("Fatal Message");            Console.WriteLine("Hello World!");            Console.ReadKey();        }    }}

2)ASP .NET Core项目

在项目Startup.cs中修改Configure()方法,具体如下:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)     {          //app.UseStaticFiles();          //使用NLog作为日志记录工具          loggerFactory.AddNLog();          //引入Nlog配置文件          env.ConfigureNLog("NLog.config");          if (env.IsDevelopment())          {             app.UseDeveloperExceptionPage();          }          app.UseAuthentication();          app.UseMvc();     }

在控制器中的注入代码

public class ValuesController : Controller    {        private ILogger logger;        public ValuesController(ILogger _logger)        {            logger = _logger;        }        // GET api/values        [HttpGet]        public string Get()        {            logger.LogError("123");            return "value";        }  }

也可以通过private NLog.ILogger logger = NLog.LogManager.GetCurrentClassLogger();这种方式直接使用。