using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

using NLog;
using NLog.Web;

namespace NLogStudy.CoreWeb2.UseMySQL
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .ConfigureLogging((hostBuild,logBuild) => 
                {
                    logBuild.ClearProviders();
                    logBuild.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);

                    string connectString= hostBuild.Configuration.GetValue<string>("ConnectionStrings:NLog");

                    //设置数据库连接字符串方法1:使用变量
                    //nlog配置文件中:connectionString="${var:connectionString}"
                    //NLog.LogManager.Configuration.Variables["connectionString"] = connectString;

                    //设置数据库连接字符串方法2:代码配置Target属性
                    NLog.LogManager.Configuration.FindTargetByName<NLog.Targets.DatabaseTarget>("MySQLTarget").ConnectionString = connectString;

                    //设置数据库连接字符串方法3:全局诊断字典(测试不通过)
                    //GlobalDiagnosticsContext.Set("connectionString", connectString);
                })
                .UseNLog();
    }
}