当前位置: 首页 > news >正文

包头手机网站制作大气有内涵的公司名字

包头手机网站制作,大气有内涵的公司名字,找建设网站公司哪家好,公司logo免费智能设计在本文中,我们将详细介绍.NET Core日志内容,包括不同日志级别的区别,以及一些常用的日志记录实用工具和第三方库。同时,我们还将通过示例来展示如何使用这些工具和库。 一、.NET Core日志级别 .NET Core日志系统提供了五种日志级…

在本文中,我们将详细介绍.NET Core日志内容,包括不同日志级别的区别,以及一些常用的日志记录实用工具和第三方库。同时,我们还将通过示例来展示如何使用这些工具和库。

一、.NET Core日志级别

.NET Core日志系统提供了五种日志级别,分别如下:

  1. Trace:跟踪级别用于详细诊断信息,通常只在诊断问题时启用。
  2. Debug:调试级别用于应用程序的调试信息,通常在开发过程中使用。
  3. Information:信息级别用于常规信息性消息,表示应用程序运行正常。
  4. Warning:警告级别用于表示某些意外事件的提示,但是应用程序仍然可以正常运行。
  5. Error:错误级别用于表示应用程序中的错误,导致应用程序无法正常运行。
  6. Critical:关键级别用于表示严重错误,可能导致应用程序崩溃。

在.NET Core中,可以通过配置日志级别来控制输出哪些级别的日志信息。以下是一个简单的示例,演示如何配置和使用.NET Core的日志记录系统。
首先,创建一个新的.NET Core Web API项目。在项目目录中,打开appsettings.json文件,添加以下日志配置:

{"Logging": {"LogLevel": {"Microsoft": "Warning","System": "Warning","MyApp": "Information"}}
}

在这个配置中,我们设置了三个日志级别:

  • 对于Microsoft和System命名空间,日志级别设置为Warning。
  • 对于MyApp命名空间,日志级别设置为Information。
    接下来,创建一个简单的日志记录器类,用于输出日志信息。在项目中添加一个新的类LoggingService.cs,内容如下:
using Microsoft.Extensions.Logging;
using System;
public class LoggingService : ILogger<LoggingService>
{public IDisposable BeginScope<TState>(TState state){return null;}public bool IsEnabled(LogLevel logLevel){return true;}public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter){if (logLevel >= LogLevel.Information){Console.WriteLine($"{logLevel}: {formatter(state, exception)}");}}
}

在这个类中,我们重写了ILogger接口的方法,以实现日志记录的功能。
现在,我们可以在应用程序中使用这个日志记录器。首先,需要在Startup.cs文件中注册日志记录器:

public void ConfigureServices(IServiceCollection services)
{services.AddSingleton<ILogger<LoggingService>>(sp =>new LoggingService());
}

接下来,在控制器中使用这个日志记录器输出不同级别的日志信息:

[ApiController]
[Route("[controller]")]
public class ValuesController : ControllerBase
{private readonly ILogger<ValuesController> _logger;public ValuesController(ILogger<ValuesController> logger){_logger = logger;}[HttpGet]public IEnumerable<string> Get(){_logger.LogVerbose("Verbose log message");_logger.LogDebug("Debug log message");_logger.LogInformation("Information log message");_logger.LogWarning("Warning log message");_logger.LogError("Error log message");_logger.LogCritical("Critical log message");return new string[] { "value1", "value2" };}
}

在这个示例中,我们创建了一个ValuesController控制器,其中包含了多个不同的HTTP GET方法。在每个方法中,我们使用_logger对象输出了不同级别的日志信息。根据我们之前的配置,Verbose和Debug级别的日志信息将不会输出,因为它们的级别低于配置的Warning级别。

运行应用程序,访问http://localhost:5000/values,你可以在控制台中看到输出的日志信息。其中,只有Information、Warning、Error和Critical级别的日志信息会被输出。
通过使用了几个不同的日志级别,包括LogDebug(调试级别,通常不会在生产环境中显示)、LogInformation(信息级别)、LogWarning(警告级别)、LogError(错误级别)和LogCritical(严重级别)输出不同等级日志信息。

注意,LogDebug调用实际上不会输出任何内容,因为我们没有在配置中启用调试日志。在生产环境中,通常不会启用调试日志,因为它们可能会包含敏感信息。

二、日志记录实用工具

2.1Serilog

Serilog是一个高度可配置的日志记录库,用于替代内置的日志记录系统。它提供了丰富的功能,如日志旋转、输出到不同的目的地(控制台、文件、数据库等)、结构化日志等。
安装Serilog

dotnet add package Serilog

示例:

public class Program
{public static void Main(string[] args){Log.Logger = new LoggerConfiguration().Enrich.FromLogContext().WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}").CreateLogger();try{Log.Information("Starting application");// 业务逻辑}catch (Exception ex){Log.Error(ex, "An error occurred");}Log.CloseAndFlush();}
}

2.2 Log4Net

Log4Net是另一个常用的日志记录工具,它基于Apache Log4j2。Log4Net提供了丰富的配置选项,如日志源、日志应用ender、日志过滤器等。
安装Log4Net:

dotnet add package log4net

示例:

public class Program
{private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);public static void Main(string[] args){log.Info("Starting application");// 业务逻辑log.Error("An error occurred");}
}

三、第三方库

3.1 ELK Stack

ELK Stack是由Elasticsearch、Logstash和Kibana组成的日志聚合平台。通过使用ELK Stack,可以将日志数据索引到Elasticsearch中,并通过Kibana进行可视化展示。
安装ELK Stack:

  • Elasticsearch:dotnet add package Elasticsearch.Net
  • Logstash:使用Logstash管道处理日志数据,并将数据发送到Elasticsearch。
  • Kibana:使用Kibana进行日志数据的可视化展示。
    示例:
using Elasticsearch.Net;
public class Program
{public static void Main(string[] args){var settings = new ConnectionSettings(new Uri("http://localhost:9200")));var client = new ElasticClient(settings);var log = new LoggerConfiguration().Enrich.FromLogContext().WriteTo.Elasticsearch(client, new ElasticsearchSinkOptions(){IndexFormat = "logstash-{0:yyyy.MM.dd}"}).CreateLogger();Log.Information("Starting application");// 业务逻辑Log.Error("An error occurred");}
}

3.2 MySQL、SQL Server等数据库

除了ELK Stack,你还可以将日志存储到MySQL、SQL Server等数据库中。这通常需要使用第三方库,如MySqlConnector、Microsoft.EntityFrameworkCore等。
安装MySqlConnector:

dotnet add package MySqlConnector

示例:

using MySql.Data.MySqlClient;public class Program
{private readonly ILogger _logger;public Program(){var connectionString = "your_connection_string_here";var options = new MySqlSinkOptions{TableName = "Logs",ColumnOptions = new Dictionary<string, ColumnOptions>{{ "Level", new ColumnOptions { IsNullable = false } },{ "Message", new ColumnOptions { IsNullable = false } },{ "Exception", new ColumnOptions { IsNullable = true } },{ "Source", new ColumnOptions { IsNullable = false } },{ "Scope", new ColumnOptions { IsNullable = true } },{ "Timestamp", new ColumnOptions{DataType = "DATETIME",IsNullable = false}}}};_logger = new LoggerConfiguration().Enrich.FromLogContext().WriteTo.MySql(connectionString, options).CreateLogger();}public void Main(){try{_logger.Information("Starting application");// 业务逻辑}catch (Exception ex){_logger.Error(ex, "An error occurred");}}
}

在这个示例中,我们使用了Serilog的WriteTo.MySql扩展方法来配置日志输出到MySQL数据库。我们为日志表定义了列和数据类型,并指定了列是否可以为空。

四、总结

本文详细介绍了.NET Core日志级别,以及如何使用一些常用的日志记录实用工具和第三方库,如Serilog、Log4Net、ELK Stack和MySQL。通过这些工具和库,你可以更加灵活地记录、存储和分析应用程序的日志,从而提高应用程序的可靠性和可维护性。希望本文能对你有所帮助!

http://www.yayakq.cn/news/942651/

相关文章:

  • 做网站哪家强网上做调查问卷赚钱的网站
  • 无锡网站建设书生商友网页实时翻译器
  • 网站建设有哪些名词手机上如何建立wordpress
  • 网站建设管理情况自查报告怎么给网站做手机端
  • 建设网站需要哪些元素wordpress js代码放哪
  • 邢台兼职网站有哪些?小广告发布
  • 邢台提供网站设计公司哪家专业网站备案需要审核多久
  • 网站标题 逗号网页设计代码浮动效果
  • 做网站价格报价费用多少钱国外私人网站
  • 深圳建设品牌网站全球优秀网页设计机构
  • 青岛网站制作排名贵阳做网站电话
  • 珠海建站前端是做什么的?
  • 静态后台管理网站模板校园网站开发背景
  • 广州技术支持 骏域网站建设简阳电力建设立项网站
  • 免费网站备案号码打字赚钱平台 学生一单一结
  • 舞蹈网站模板网页版传奇世界羽翼升级
  • 赤坎网站制作广告公司管理系统软件
  • 杂志媒体网站建设方案赤城seo网站优化排名
  • 广州市专注网站建设公司玉溪市建设局网站
  • 网站团队建设情况合作建站方案
  • 景德镇网站制作wordpress文章点赞插件
  • 谢岗做网站如何做网站推广自己产品
  • 合肥网站 技术支持 上诚科技太谷网站建设
  • 网站主题栏目分类广东网站优化公司
  • django可以做多大的网站生产公司简介模板
  • 电子商务网站建设的规章制度2023兔年ppt免费模板
  • 广州电商网站开发公司做网站业务的怎么寻找客户
  • 上海网站建设设计公司排名做广告牌子的电话
  • wordpress设置主导航无法点击百度搜索优化平台
  • 科技公司网站php源码网站更新内容怎么做