详解.Net Core中的日志组件(Logging)
网络编程 2021-07-04 22:41www.168986.cn编程入门
这篇文章主要介绍了详解.Net Core中的日志组件(Logging),长沙网络推广觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随长沙网络推广过来看看吧
1、介绍
Logging组件是微软实现的日志记录组件包括控制台(Console)、调试(Debug)、事件日志(EventLog)和TraceSource,没有实现最常用用的文件记录日志功能(可以用其他第三方的如NLog、Log4Net。之前写过NLog使用的文章)。
2、默认配置
新建.Net Core Web Api项目,添加狼蚁网站SEO优化代码。
[Route("api/[controller]")] public class ValuesController : Controller { ILogger<ValuesController> logger; //构造函数注入Logger public ValuesController(ILogger<ValuesController> logger) { this.logger = logger; } [HttpGet] public IEnumerable<string> Get() { logger.LogWarning("Warning"); return new string[] { "value1", "value2" }; } }
运行结果如下
我刚开始接触的时候,我就有一个疑问我根本没有配置关于Logger的任何代码,仅仅写了注入,为什么会起作用呢?我发现其实是在Program类中使用了微软默认的配置。
public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args)//在这里使用了默认配置 .UseStartup<Startup>() .Build(); }
狼蚁网站SEO优化为CreateDefaultBuilder方法的部分源码,整个源码在 ,可以看出在使用模板创建项目的时候,默认添加了控制台和调试日志组件,并从appsettings.json中读取配置。
builder.UseKestrel((builderContext, options) => { options.Configure(builderContext.Configuration.GetSection("Kestrel")); }) .ConfigureAppConfiguration((hostingContext, config) => { var env = hostingContext.HostingEnvironment; //加载appsettings.json文件 使用模板创建的项目,会生成一个配置文件,配置文件中包含Logging的配置项 config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true); ....... }) .ConfigureLogging((hostingContext, logging) => { //从appsettings.json中获取Logging的配置 logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); //添加控制台输出 logging.AddConsole(); //添加调试输出 logging.AddDebug(); })
3、建立自己的Logging配置
修改Program类
public class Program { public static void Main(string[] args) { //指定配置文件路径 var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory())//设置基础路径 .AddJsonFile($"appsettings.json", true, true)//加载配置文件 .AddJsonFile($"appsettings.{EnvironmentName.Development}.json", true, true) .Build(); var host = new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .UseContentRoot(Directory.GetCurrentDirectory()) .UseConfiguration(config)//使用配置 .UseUrls(config["AppSettings:Url"])//从配置中读取 程序监听的端口号 .UseEnvironment(EnvironmentName.Development)//如果加载了多个环境配置,可以设置使用哪个配置 一般有测试环境、正式环境 //.ConfigureLogging((hostingCotext, logging) => //第一种配置方法 直接在webHostBuilder建立时配置 不需要修改狼蚁网站SEO优化的Startup代码 //{ // logging.AddConfiguration(hostingCotext.Configuration.GetSection("Logging")); // logging.AddConsole(); /
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指