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

  介绍

这篇文章将为大家详细讲解有关。网络核心项目如何添加日志功能详解,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强>一、微软内置的日志组件

在。网络核心中使用模板新建的Web Api项目时,会自动加入日志功能。只需要在控制器中注入ILogger实例就可以了。命名空间为:<代码> Microsoft.Extensions。日志

。网络核心项目如何添加日志功能详解“> </p> <p>会发现只有错误被打印到了控制台,跟踪没有被打印。那是因为在appsetting.json中配置了Logging> Console>默认的等级为调试、日志的等级大于等于调试才会输出到控制台。在这里说一下<代码> LogLevel: Trace<Debug<Information<Warning<Error<Critical<没有> </代码。</p> <p>当打开appsettings.development.json文件你会发现跟appsettings.json配置不同。如下:</p> <pre类= {   ,“Logging": {   ,“IncludeScopes":假的,   ,“LogLevel": {   ,“Default":,“Debug"   ,“煤气报修:“Information",   ,“Microsoft":“Information"   ,}   ,}   }

<>强例如:

<代码>“煤气报修:“Information"表示命名空间以系统开头的类中且日志等级大于等于信息才会输出到控制台。

<代码>“Default":“Debug"表示除以系统和微软开头的命名空间日志等级大约等于调试才会输出到控制台。

这里说明一下到底是在什么时候,读取了appsettings。json中的配置了了?其实是在程序中<代码>高手写。CreateDefaultBuilder(阿尔该)

打开源码发现

。网络核心项目如何添加日志功能详解“> </p> <p>当然我们可以不用微软提供的默认配置</p> <pre类= public  class 程序   ,{   ,public  static  void  Main (string [], args)   ,{//指才能定配置文件路径   var 才能;configBuilder =, new  ConfigurationBuilder ()   ,,,,.SetBasePath (Directory.GetCurrentDirectory ())   ,,,.AddJsonFile(“美元;appsettings.json",,真的,,真的)   ,,,.AddJsonFile(美元“appsettings。{EnvironmentName.Development} .json",,真的,,真的);      var 才能;config =, configBuilder.Build ();   ,,   var 才能;host =, new  WebHostBuilder ()   ,,.UseKestrel ()   ,,.UseStartup ()   ,,.UseContentRoot (Directory.GetCurrentDirectory ())   ,,.UseUrls(配置[“AppSettings: Url"])//设置启动时的地址   ,,.Build ();   host.Run才能();   ,}   以前,}

配置文件为:

{   ,“AppSettings": {   ,“Url":“http://0.0.0.0:6000"   },   ,“Logging": {   ,“IncludeScopes":假的,   ,“Debug": {   ,“LogLevel": {   ,“Default":“Info"   ,}   },   ,“Console": {   ,“LogLevel": {   ,“Default":“Warning"   ,}   ,}   ,}   }

启动为:

public  class 启动   ,{   ,public  IConfiguration  Configuration {,得到;private ;,}   ,public 启动(IHostingEnvironment  env)//在构造函数中注入,IHostingEnvironment    ,{   时间=Configuration 才能;new  ConfigurationBuilder ()   ,,,.SetBasePath (env.ContentRootPath)   ,,,.AddJsonFile(美元“appsettings.json")   ,,,.Build ();   ,}   ,public  void  ConfigureServices (IServiceCollection 服务)   ,{   services.AddMvc才能();   ,}      ,public  void 配置(IApplicationBuilder 应用,   IHostingEnvironment 才能;env,   ILoggerFactory  loggerFactory)才能   ,{   if 才能;(env.IsDevelopment ())   {才能   app.UseDeveloperExceptionPage才能();   ,,}//才能添加控制台输出   loggerFactory.AddConsole才能(Configuration.GetSection (“Logging"));   loggerFactory.AddDebug才能();      app.UseMvc才能();   ,}   以前,}

但是微软提供的内置的日志组件没有实现将日志记录到文件,数据库上。下面介绍NLog

<强>二,NLog

首先使用NuGet添加NLog,然后在启动的配置中添加以下代码

public  void 配置(IApplicationBuilder 应用,   IHostingEnvironment 才能;env,   ILoggerFactory  loggerFactory)才能   ,{   if 才能;(env.IsDevelopment ())   {才能   app.UseDeveloperExceptionPage才能();   ,,}//才能添加控制台输出   loggerFactory.AddConsole才能(Configuration.GetSection (“Logging"));   loggerFactory.AddDebug才能();      loggerFactory.AddNLog才能();//添加NLog   NLog.LogManager.LoadConfiguration才能(@"美元;{env.ContentRootPath}/nlog.config");//指定NLog的配置文件      app.UseMvc才能();   以前,}

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