Asp.net Core 3.1 之NLog使用
一、新建解决方案,并初始化默认访问路由
二、Nuget引用
三、 更改Program.cs文件
代码如下:
public class Program { public static void Main(string[] args) { NLogBuilder.ConfigureNLog("nlog.config"); CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }).ConfigureLogging(logging => { logging.ClearProviders(); logging.SetMinimumLevel(LogLevel.Information); logging.AddConsole(); }).UseNLog();//其中,UseNLog是拓展方法,需要引入NLog.Web.AspNetCore }
四、新增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"> <targets> <target name="defaultlog" xsi:type="File" keepFileOpen="false" encoding="utf-8" fileName="${basedir}/logs/${level}${shortdate}.log" maxArchiveFiles="100" layout="${longdate}|${level:uppercase=true}|${logger}|${message}" /> <!--fileName值——表示在程序运行目录,分日志级别按天写入日志文件--> <!--maxArchiveFiles值——日志文件最大数量,超出则删除最早的文件--> <!--layout值——日志内容格式:时间+日志级别+LoggerName+日志内容--> </targets> <rules> <!--支持将任意级别、任意LoggerName的日志写入target:defaultlog--> <!--其中*就表示任意,可以改为"项目命名空间.*",则只输出对应命名空间下的日志。在Info级别尤为明显--> <logger name="*" minlevel="trace" writeTo="defaultlog" /> </rules> </nlog>
五、在Controller中的使用
代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 namespace DemoCore.Controllers { [Route("api/[controller]/[action]")] //Api控制器 [ApiController] public class HomeController : Controller { private ILogger _logger; public HomeController(ILogger<HomeController> logger) { _logger = logger; } // GET: api/<controller> [HttpGet] public IEnumerable<string> Get() { _logger.LogInformation("测试一下,不要紧张!"); return new string[] { "value1", "value2" }; } } }
六、效果预览
点到为止