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

医院网站建设费用wordpress icon class

医院网站建设费用,wordpress icon class,谷歌排名查询,合肥专业做淘宝网站推广Serilog 是一个功能强大的日志记录库,专为 .NET 平台设计。它提供了丰富的 API 和可插拔的输出器及格式化器,使得开发者能够轻松定制和扩展日志记录功能。在本文中,我们将探索 Serilog 的基础知识、API 使用、配置和一些常见的示例。 1. 日志…

Serilog 是一个功能强大的日志记录库,专为 .NET 平台设计。它提供了丰富的 API 和可插拔的输出器及格式化器,使得开发者能够轻松定制和扩展日志记录功能。在本文中,我们将探索 Serilog 的基础知识、API 使用、配置和一些常见的示例。


1. 日志级别

Serilog 支持多个日志级别,按照严重性从高到低排列如下:

  • Fatal: 程序无法继续运行,必须立即解决的问题。
  • Error: 发生了错误,需要处理。
  • Warning: 警告,需关注但不必立即处理。
  • Information: 提供有用的消息,通常用于调试。
  • Debug: 调试信息,帮助开发者调试程序。
  • Verbose: 详细的日志信息,通常用于复杂问题的调试。

2. 日志输出

Serilog 支持多种日志输出方式,包括:

  • Console: 输出到控制台。
  • File: 输出到文件。
  • Seq: 输出到日志收集器 Seq。
  • Elasticsearch: 输出到 Elasticsearch。

此外,Serilog 也支持自定义日志输出器。


3. 日志格式

Serilog 提供了多种格式化日志消息的方式:

  • 简单文本格式:常见的日志输出格式。
  • JSON 格式:适合结构化日志。
  • Message Templates 格式:一种灵活的格式,允许在日志消息中插入占位符。

4. 安装

Serilog 可以通过 NuGet 安装:

Install-Package Serilog

5. 基础使用示例

在应用程序中使用 Serilog 十分简单。以下是一个简单的控制台日志输出示例:

using Serilog;class Program
{static void Main(){Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console().CreateLogger();Log.Information("Hello, Serilog!");Log.CloseAndFlush();}
}

此代码将在控制台输出 Hello, Serilog!


6. 日志级别示例

Serilog 允许设置不同的日志级别。以下示例演示了如何记录各种级别的日志消息:

using Serilog;class Program
{static void Main(){Log.Logger = new LoggerConfiguration().MinimumLevel.Verbose().WriteTo.Console().CreateLogger();Log.Verbose("This is a verbose log message.");Log.Debug("This is a debug log message.");Log.Information("This is an informational log message.");Log.Warning("This is a warning log message.");Log.Error("This is an error log message.");Log.Fatal("This is a fatal log message.");Log.CloseAndFlush();}
}

7. 消息模板

Serilog 支持消息模板,允许开发者在日志中使用占位符。以下示例展示了如何使用消息模板:

using Serilog;class Program
{static void Main(){Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}").CreateLogger();Log.Information("Hello, {Name}!", "Serilog");Log.CloseAndFlush();}
}

上述代码将在控制台输出如下格式的日志:

2023-09-15 22:23:54.576 +08:00 [INF] Hello, Serilog!

8. 日志属性

Serilog 支持在日志中添加附加属性。以下示例展示了如何记录额外的信息:

using Serilog;class Program
{static void Main(){Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console().CreateLogger();Log.Information("Processed {@Count} records in {Time} ms.", new { Count = 10, Time = 123 });Log.CloseAndFlush();}
}

此代码会输出:

Processed { Count: 10, Time: 123 } records in 0 ms.

9. 文件输出配置

Serilog 允许将日志输出到文件,并通过 rollingInterval 设置日志滚动方式。以下示例展示了如何按天滚动文件并设置输出模板:

Log.Logger = new LoggerConfiguration().WriteTo.File($"logs\\log-.txt", rollingInterval: RollingInterval.Day, outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}").CreateLogger();Log.Information("This is a log message!");Log.CloseAndFlush();

这将创建类似于 log-20230914.txt 的文件,每天一个新文件。


10. 结构化日志记录

Serilog 支持结构化日志记录,这意味着可以将复杂的数据(如对象、集合等)以结构化的方式存储和输出。例如:

using Serilog;class Program
{static void Main(){var weather = new WeatherForecast{Date = DateTime.Now,TemperatureC = 22,Summary = "Sunny"};Log.Information("Weather forecast: {@Weather}", weather);Log.CloseAndFlush();}
}public class WeatherForecast
{public DateTime Date { get; set; }public int TemperatureC { get; set; }public string Summary { get; set; }
}

此代码将输出类似于:

Weather forecast: {"Date":"2023-09-15T22:39:53.8634787+08:00","TemperatureC":22,"Summary":"Sunny","$type":"WeatherForecast"}

11. 日志过滤

Serilog 允许使用过滤器控制输出。以下示例仅输出错误级别以上的日志:

using Serilog;class Program
{static void Main(){Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console().Filter.ByIncludingOnly(logEvent => logEvent.Level >= LogEventLevel.Error).CreateLogger();Log.Verbose("This is a verbose log message.");Log.Error("This is an error log message.");Log.CloseAndFlush();}
}

此代码只会在控制台输出错误和更高严重级别的日志。


12. 扩展与自定义输出器

Serilog 支持自定义输出器,允许开发者将日志输出到不同的目的地(例如 Elasticsearch、数据库等)。以下是一个创建自定义控制台输出器的例子:

using Serilog;
using Serilog.Configuration;
using Serilog.Events;public static class CustomConsoleSinkExtensions
{public static LoggerConfiguration CustomConsole(this LoggerSinkConfiguration sinkConfiguration,ITextFormatter formatter = null,LogEventLevel restrictedToMinimumLevel = LevelAlias.Minimum){return sinkConfiguration.Sink(new CustomConsoleSink(formatter),restrictedToMinimumLevel);}
}public class CustomConsoleSink : ILogEventSink
{private readonly ITextFormatter _formatter;public CustomConsoleSink(ITextFormatter formatter){_formatter = formatter ?? throw new ArgumentNullException(nameof(formatter));}public void Emit(LogEvent logEvent){var message = new StringWriter();_formatter.Format(logEvent, message);Console.WriteLine(message.ToString());}
}

然后可以通过以下方式将其添加到日志配置中:

Log.Logger = new LoggerConfiguration().WriteTo.CustomConsole().CreateLogger();

13. 总结

Serilog 是一个功能强大的 .NET 日志库,支持丰富的日志记录方式、输出方式和格式化选项。它的可扩展性和灵活性使得开发者能够根据应用程序的需求定制日志记录方式。从简单的控制台日志到复杂的结构化日志和自定义输出器,Serilog 都能轻松应对。

希望本文对您理解 Serilog 和高效使用该库有所帮助!


文章转载自:

http://GhQ2k8do.tbjtp.cn
http://OAZehSSl.tbjtp.cn
http://XDlaNTlb.tbjtp.cn
http://UGfV8SRx.tbjtp.cn
http://DubZuTc4.tbjtp.cn
http://esjKxkNF.tbjtp.cn
http://opnwNfoA.tbjtp.cn
http://krqIANHc.tbjtp.cn
http://XS1C8Qh9.tbjtp.cn
http://qi8JubSa.tbjtp.cn
http://h8mX3EoT.tbjtp.cn
http://6lQj43O6.tbjtp.cn
http://qvopkCHm.tbjtp.cn
http://X64QaS0o.tbjtp.cn
http://iqu5QIs4.tbjtp.cn
http://r1ZEv17Y.tbjtp.cn
http://VgfrHyWO.tbjtp.cn
http://HPvsdOsq.tbjtp.cn
http://ko4Xp1A3.tbjtp.cn
http://QVwZ2UiH.tbjtp.cn
http://u6M7pW4Q.tbjtp.cn
http://jo91B06Q.tbjtp.cn
http://JZBJ8yp4.tbjtp.cn
http://NYLJHJZ3.tbjtp.cn
http://xzJ94akv.tbjtp.cn
http://ErneD5Q9.tbjtp.cn
http://JMMQGt6w.tbjtp.cn
http://vBxEZ242.tbjtp.cn
http://7CVcu3uV.tbjtp.cn
http://3IR59C8R.tbjtp.cn
http://www.dtcms.com/wzjs/692363.html

相关文章:

  • 取消网站备案时间深圳市seo上词多少钱
  • 中国工信部网站备案怎么网页下载jpg格式图片
  • 在网站上做招聘版面wordpress 编辑器增加翻译按钮
  • 做的怎样 英文网站怎样分析网站做seo
  • 和君网站建设app开发技术有哪些
  • 金湖网站推广深圳入户
  • 精美企业网站手机网站首页经典案例
  • 亚星网站代理wordpress 文件目录结构
  • 网站专题页面设计欣赏2345网址导航 手机上网简单一点
  • 齐齐哈尔网站设计视频门户网站建设服务器
  • 网站弹出信息怎么做用ip地址做网站地址有危险
  • 快递公司网站模板杭州seo公司排名
  • 手机免费制作ppt的软件下载seo做网站
  • 类似电影天堂的网站 怎么做免费广告设计网站
  • ios网站开发怎么推广一个app
  • 网站首页网址应该有对应的域名dw做的网站不显示
  • 工业设计属于什么专业类别seo顾问是干什么
  • Paas网站建设vi形象设计包括什么
  • 图片网站建设新建网站多少钱
  • 比较好的网站搭建论坛江苏国智建设有限公司网站
  • 做推送好用的网站ui网站开发报价
  • 展示型型网站建设韶山网站建设
  • 手机网站的内容模块网站怎么做弹幕播放器
  • 浙江网站建设价格社区文化建设
  • 重庆忠县网站建设报价新乡seo顾问
  • 原创音乐网站源码哪里有网站开发
  • 如何创建自己网站景德镇网站制作公司
  • 网店美工岗位职责东莞网站优化流程
  • 后台控制网站关键词设置的详细代码昆明网络推广服务
  • 解决方案网站个人网站做跳转怎么弄