【.NET Core】应用配置,多环境,日志NLog

目录

应用配置

读取配置

绑定配置模型对象方式

通过配置文件名读取配置

多环境

方法多环境

Startup多环境

日志

使用NLog

下载

配置

修改配置

使用


应用配置

应用配置信息一般存在appsettings.json文件中

添加一些配置信息

{
  "str": "aaa",
  "People": {
    "Name": "haha",
    "Age": 18
  }
}

在Startup中,通过依赖注入给IConfiguration注入服务

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

public IConfiguration Configuration { get; }

读取配置

 var str = Configuration["str"];
 var name = Configuration["People:Name"];

绑定配置模型对象方式

新建模型

public class People
{
    public string Name { get; set; }
    public int Age { get; set; }
}

将配置信息绑定到People对象p中

var p = new People();
Configuration.Bind("People", p);

 

另外一种绑定模型的方式,通过添加服务的方式

在Startup的ConfigureServices方法,配置服务

services.Configure(Configuration.GetSection("People"));

然后在其他地方就可以通过注入方式获取了

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IOptions peopleOptions)
{
    string name = peopleOptions.Value.Name;
}

上面是在controller的注入方式,下面介绍view的注入方式

通过@inject注入

@using Microsoft.Extensions.Options
@inject IOptions peopleOptions

使用

@peopleOptions.Value.Name

 

通过配置文件名读取配置

var config = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var str = config["str"];

 

多环境

方法多环境

可以在Properties的launchSetting.json文件中修改配置

【.NET Core】应用配置,多环境,日志NLog_第1张图片

将Development修改为Demo

然后在Startup中添加一个新的方法,与ConfigureServices类型的,起名为ConfigureDemoServices

public void ConfigureDemoServices(IServiceCollection services)
{
    
}

这样我们使用IIS Express启动时,则执行ConfigureDemoServices方法

同样的,我们也可以模仿上面的,添加类似Configure方法的ConfigureDemo

Startup多环境

定义一个StartuoDemo的类

public class StartupDemo
{
    public IConfiguration Configuration { get; }
    public StartupDemo(IConfiguration configuration)
    {
        Configuration = configuration;
    }
}

修改Program的CreateHostBuilder方法

让其自动寻找指定程序集下对于的Startup类

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup(System.Reflection.Assembly.GetExecutingAssembly().FullName);
            //webBuilder.UseStartup();
        });

 

日志

.NET Core 的日志配置默认只是添加到Console和Debug中

 

使用NLog

官网地址: https://nlog-project.org/

GitHub地址:https://github.com/NLog/NLog

 

下载

在NuGet下载NLog和NLog.Web.AspNetCore

【.NET Core】应用配置,多环境,日志NLog_第2张图片

添加一个配置文件nlog.config

参考官方文档:https://github.com/NLog/NLog/wiki/Configuration-file

配置




  
    
  

  
    
    

    
    
  

  
  
    
    

    
    
    
    
  

修改配置

修改Program文件

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup();
        }).UseNLog();

使用

public HomeController(ILogger logger)
{
    logger.LogInformation("aaaa");
}

日志

在项目下的bin\Debug\netcoreapp3.1\logs

 

 

你可能感兴趣的:(.NET,Core)