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.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Logging.Debug; namespace LogStudy.WebApp { public class Program { public static void Main(string[] args) { var host = CreateWebHostBuilder(args).Build(); //启动检查:使用日志 var logger = host.Services.GetRequiredService>(); logger.LogInformation("检查数据库连接"); logger.LogDebug(new EventId(1000,"事件名"),"检查缓存{id}",222); //少提供一个参数 logger.LogInformation("1001","检查MQ{id}{name}",3333); host.Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) { var webBuilder = WebHost.CreateDefaultBuilder(args) //配置日志 .ConfigureLogging((hostbuildContext, logBuild) => { //CreateDefaultBuilder 默认注册了日志组件: //使用appsettings.环境变量.json 的Logging配置节 //默认添加了以下提供程序:Console、 Debug、EventSource //详情可以查看源代码 //本方法ConfigureLogging,重新配置日志 //配置信息 var config = hostbuildContext.Configuration; //环境变量 var ev = hostbuildContext.HostingEnvironment; //注入服务 var service=logBuild.Services; logBuild //自定义配置信息 .AddConfiguration(config.GetSection("Logging")) //添加Console提供程序 .AddConsole() //添加Debug提供程序 .AddDebug() //添加EventLog提供程序 .AddEventLog() //添加EventSourceLogger提供程序:EWT .AddEventSourceLogger() //添加TraceSource提供程序 .AddTraceSource("NetCoreDemo") //设置最小默认日志级别 .SetMinimumLevel(LogLevel.Information) //添加筛选器:会覆盖上面配置信息 .AddFilter("System", LogLevel.Debug) //不指定提供程序,则应用与全部 .AddFilter("Microsoft", LogLevel.Trace);//只作用于指定的提供程序 DebugLoggerProvider //以下方式,可以使用第三方日志组件,如Nlog、Log4net等 //.ClearProviders() //.AddProvider(null) }) .UseStartup(); return webBuilder; } } }