asp。netcore5。0使用nlog
创建项目,安装Nuget包NLog.Web.AspNetCoreInstall-Package NLog.Web.AspNetCore 4.14.0在项目根目录下创建配置文件nlog.config<?xml version="1.0" encoding="utf-8"?> 修改Program.cspublic class Program { public static void Main(string[] args) { var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger(); try { CreateHostBuilder(args).Build().Run(); } catch (Exception exception) { logger.Error(exception, "Stopped program because of exception"); throw; } finally { NLog.LogManager.Shutdown(); } } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) .ConfigureLogging(logging => { logging.ClearProviders(); logging.SetMinimumLevel(LogLevel.Trace); }) .UseNLog(); }构造注入ILogger使用public class WeatherForecastController : ControllerBase { private readonly ILogger _logger; public WeatherForecastController(ILogger logger) { _logger = logger; } [HttpGet] public IEnumerable Get() { _logger.LogInformation("infomation"); _logger.LogError("error"); return Enumerable.Empty(); } }自定义配置文件和多环境支持
在Program.cs的main方法开头将logger初始化的代码替换为如下代码即可var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? Environments.Production; var logger = NLog.LogManager.Setup(setupBuilder => { setupBuilder.LogFactory.LoadConfiguration(#34;nlog.{env}.config"); }).GetCurrentClassLogger();