一、新建解決方案,並初始化默認訪問路由
二、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" }; } } }
六、效果預覽