手机版

净核心项目如何添加日志功能详解

时间:2021-08-31 来源:互联网 编辑:宝哥软件园 浏览:

一、微软内置的日志组件

在。净核心中使用模板新建的互联网连结编程界面项目时,会自动加入日志功能。只需要在控制器中注入ILogger就可以了。命名空间为:微软。扩展。日志记录。

会发现只有错误被打印到了控制台,Trace没有被打印。那是因为在appsetting.json中配置了日志记录控制台故障的等级为调试,日志的等级大于等于调试才会输出到控制台。在这里说一下日志级别:tracedebuginformationwarningerrorcriticlone。

当打开appsettings.development.json文件你会发现跟appsettings.json配置不同。如下:

{"日志记录": {"包括操作":为假,"日志级别": {"默认":"调试","系统":"信息","微软":"信息"} }}例如:

系统' : '信息'表示命名空间以系统开头的类中且日志等级大于等于信息才会输出到控制台。

默认' : '调试'表示除以系统和微软开头的命名空间日志等级大约等于调试才会输出到控制台。

这里说明一下到底是在什么时候,读取了appsettings.json中的配置了了?其实是在程序中网络主持人.CreateDefaultBuilder(目标).

打开源码发现

当然我们可以不用微软提供的默认配置

公共类程序{公共静态void Main(字符串[]参数){ //指定配置文件路径var configBuilder=新的configBuilder().SetBasePath(目录. GetCurrentDirectory()).AddJsonFile($'appsettings.json ',true,true).AddJsonFile($'appsettings .{环境名称.发展}。'' JSON ',真,真);var config=configBuilder .build();var host=new WebHostBuilder().UseKestrel().UseStartupStartup().UseContentRoot(目录. GetCurrentDirectory()).UseUrls(配置['AppSettings:Url'])//设置启动时的地址build();主持人run();} }配置文件为:

{ ' AppSettings ' : { ' URl ' : ' http://0。0 .0 .0:6000 }、“日志记录”: {“包含范围”: false、“调试”: {“日志级别”: {“默认”:“信息”}、“控制台”3: {“日志级别”: {“默认”为:

公共类启动{公共图标配置配置{获取;私有集;}公共启动(IHostingEnvironment env)//在构造函数中注入IHostingEnvironment { Configuration=新的配置生成器().SetBasePath(env .ContentRootPath ).AddJsonFile($'appsettings.json ').build();} public void ConfigureServices(IServiceCollection services){ services .AddMvc();}公共void Configure(IApplicationBuilder应用程序,IHostingEnvironment env,ILoggerFactory logger factory){ if(env .IsDevelopment()) { app .usedeveloper异常页();} //添加控制台输出伐木工厂。添加控制台(配置GetSection('日志');伐木工厂AddDebug();应用程序.UseMvc();} }但是微软提供的内置的日志组件没有实现将日志记录到文件、数据库上。下面介绍股市分析

二、NLog

首先使用框架添加NLog,然后在启动的安装使成形中添加以下代码

公共空配置(IApplicationBuilder应用程序,IHostingEnvironment env,ILoggerFactory logger factory){ if(env .IsDevelopment()) { app .usedeveloper异常页();} //添加控制台输出伐木工厂。添加控制台(配置GetSection('日志');伐木工厂AddDebug();伐木工厂. AddNLog();//添加NLog NLog .日志管理器。load configuration([电子邮件保护]' { env .ContentRootPath }/nlog。config’);//指定股市分析的配置文件应用程序.UseMvc();}配置股市分析的配置文件

?可扩展标记语言版本='1.0 '编码='utf-8 '?nlog xmlns=' http://www。nlog-项目。org/schemass/nlog。xsd ' xmlns : xsi=' http://www .w3。org/2001/XMLSchema-实例'自动加载=' true '!-internalLogLevel=' Warn ' internalLogFile=' internal-nlog。' txt '-目标目标名称='所有文件' xsi 3360类型='文件'文件名=' ./logs/$ {短日期}/all。log ' layout=' $ { long date } | $ { message } $ { exception } '/target name=' debugfile ' xsi 3360 type=' File ' fileName=' ./logs/$ {短日期}/debug。log ' layout=' $ { long date } | $ { message } $ { exception } '/target name=' info File ' xsi 3360 type=' File ' fileName=' ./logs/$ {短日期}/info。日志'布局=' $ {长日期} | $ {消息} $ {异常} '/目标名称=' warn File ' xsi 3360类型=' File ' fileName=' ./log/$ {短日期}/warn。log ' layout=' $ { long date } | $ { message } $ { exception } '/target name=' error File ' xsi 3360 type=' File ' fileName=' ./logs/$ {短日期}/错误。日志'布局=' $ {长日期} | $ {消息} $ {异常} '/目标名称='宿命论文件xsi:type=' File ' fileName=' ./log/$ {短日期}/致命。log ' layout=' $ { long date } | $ { message } $ { exception } '/target name=' Network ' xsi : type=' Network ' address=' UDP ://China cloud app。cn :4561 '布局='开发| $ {长日期} | $ {事件-属性: item=事件id .id } | $ { logger } | $ {大写: $ { level } } | $ { message } $ { exception } '///将日志通过网络输出目标名称=' debuge ' xsi 3360类型=' Console '///将日志输出到控制台/targets规则记录器名称=' * '最小级别='跟踪'写至='所有文件,调试'/记录器名称='* '级别=' Info '写入=' infofile '/记录器名称=' * '级别=' debug '写入=' debugfile '/记录器名称=' * 级别=' warn '写入=' warn File '/记录器名称=' * '级别='错误'写入='错误文件'/记录器名称=' * '级别='致命写入='致命文件/rules/nlog存储日志为文件格式,

xsi:type='Console '表示为控制台输出。

文件名=' ./log/$ {短日期}/all。日志表示存储文件路径。

布局=' $ {长日期} | $ {消息} $ {异常} '表示为文件内容的布局。

规则标签下面表示,对应等级的日志写到对应目标中。如

记录器名称='* '级别='Info' writeTo='infofile' /表示等级为信息的日志写到目标名称为信息文件的文件中。

记录器名称=' * '最小级别='跟踪'写入='所有文件,调试'/表示日志等级大于微量的日志写到目标名称为全部文件和调试(控制台输出)中。

同样在使用的时候,只需要在用到的地方注入ILogger,就可以使用了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

版权声明:净核心项目如何添加日志功能详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。