首页 > 其他分享 >学习Serilog日志笔记

学习Serilog日志笔记

时间:2023-09-28 13:13:28浏览次数:40  
标签:Console Log Serilog WriteTo CreateLogger 笔记 new 日志 Logger

     本学习笔记所有的.net 版本为6.0 

首先引包nuget包为:serilog 和serilog.aspnetcore

1、在控制台下使用日志:

    需要引入Serilog.Sinks.Console包

  然后在program.cs中写入以下语句:

   Log.Logger=new LogerConfiguration()

.MinimumLevel.Debug()

    .WriteTo.Console()

    .CreateLogger();

Log.Information("hello this is Serilog Log");

Log.CloseAndFlush(); //这句一定要写上

2、在文件中使用日志:

    需要引入Serilog.Sinks.File包

  然后在program.cs中写入以下语句:

   Log.Logger=new LogerConfiguration()

.MinimumLevel.Debug()

    .WriteTo.File("Log.txt",rollingInterval:RollingInterval.Day)

    .CreateLogger();

Log.Information("hello this is Serilog Log");

Log.CloseAndFlush(); //这句一定要写上

 3,基于文本的接收器模板

  .WriteTo.File("Log.txt",outputTemplate:"{

Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}" )     

4、.同时写入到控制台和文件
Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .WriteTo.File("log.txt")
    .WriteTo.Console(restrictedToMinimumLevel: LogEventLevel.Information)
    .CreateLogger();
 Log.CloseAndFlush();

5、丰富器是添加、删除或修改附加到日志事件的属性的简单组件。例如,这可用于将线程 ID 附加到每个事件。

class ThreadIdEnricher : ILogEventEnricher
{
    public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
    {
        logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty(
                "ThreadId", Thread.CurrentThread.ManagedThreadId));
    }
}
 

使用配置对象添加丰富器Enrich

Log.Logger = new LoggerConfiguration()
    .Enrich.With(new ThreadIdEnricher())
    .WriteTo.Console(
        outputTemplate: "{Timestamp:HH:mm} [{Level}] ({ThreadId}) {Message}{NewLine}{Exception}")
    .CreateLogger();
 

上面的配置显示了如何在输出格式中使用丰富器添加的属性。

如果丰富的属性值在整个应用程序运行过程中保持不变,则WithProperty可以使用快捷方法来简化配置。

Log.Logger = new LoggerConfiguration()
    .Enrich.WithProperty("Version", "1.0.0")
    .WriteTo.Console()
    .CreateLogger();
 

丰富器及其附加的属性通常对于使用结构化存储的接收器更有用,可以在其中查看和过滤属性值。

可以通过过滤有选择地记录事件。过滤器只是 的谓词LogEvent,其中一些常见场景由该类处理Matching

Log.Logger = new LoggerConfiguration()
    .WriteTo.Console()
    .Filter.ByExcluding(Matching.WithProperty<int>("Count", p => p < 10))
    .CreateLogger();

子记录器

有时,需要对接收器所看到的内容进行更精细的控制。为此,Serilog 允许完整的日志管道充当接收器。

Log.Logger = new LoggerConfiguration()
    .WriteTo.Console()
    .WriteTo.Logger(lc => lc
        .Filter.ByIncludingOnly(...)
        .WriteTo.File("log.txt"))
    .CreateLogger();

  

标签:Console,Log,Serilog,WriteTo,CreateLogger,笔记,new,日志,Logger
From: https://www.cnblogs.com/zy8899/p/17735504.html

相关文章

  • zabbix监控日志文本
    监控集群oracle数据库,掉盘情况1.创建监控项—>日志如果是否出现CLOSED字符,出现即报警vfs.file.regmatch[/home/oracle/db_check/log/asmdisk_check.log,CLOSED]2.创建触发器,警告—>出现CLOSED字符立即报警-hostnamexxxxxxx是服务器主机名{hostnamexxxxxxx:vfs.file.regmatch[/ho......
  • Uniapp学习笔记(vue3)
    https://uniapp.dcloud.net.cn/使用Vue.js开发所有前端应用的框架开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。周边生态丰富发送请求 methods:{ getMsg(msg){ ......
  • 《Unix/linux系统编程》教材第7、8章学习笔记
    第七章:文件操作文件操作级别(1)硬件级别fdisk:将硬盘、U盘或SDC盘分区mkfs:格式化磁盘分区,为系统做好准备fsck:检查和维修系统碎片整理:压缩文件系统中的文件(2)操作系统内核中的文件系统函数前缀为k表示内核函数(3)系统调用:用户模式程序使用系统调用来访问内核函数open()、read......
  • openfeign开启日志Logger.Level feignLoggerLevel()中Level爆红的解决
    问题原因:引错包了!!!应该引入如下这个包importfeign.Logger;......
  • 几种常用的日志管理系统
    日志管理系统是用于收集、存储、分析和可视化日志数据的工具,用于监控和维护应用程序和系统的运行状况。以下是几种常用的日志管理系统:ELKStack(Elasticsearch、Logstash、Kibana):ELKStack是一个流行的开源日志管理解决方案,它包括Elasticsearch用于存储和搜索日志数据,Logstash用......
  • 学习笔记4
    第七章第八章自学笔记1.第七章7.1文件操作级别文件操作分为五个级别,按照从低到高的顺序排列如下。(1)硬件级别∶硬件级别的文件操作包括∶●fdisk∶将硬盘、U盘或SDC盘分区。●mkfs∶格式化磁盘分区,为系统做好准备。●fsck∶检查和维修系统。●碎片整理;压缩文件系统......
  • 阅读笔记一:《软件需求分析》的观后感
    软件需求分析是软件开发过程中至关重要的一环,它为项目的成功奠定了坚实的基础。通过对软件需求分析的学习和思考,我深刻地认识到了其在软件开发中的重要性以及如何有效地进行需求分析。首先,我认为软件需求分析是软件工程的关键步骤之一,因为它直接关系到软件项目的成败。在需求分析......
  • filebeat 收集 nginx 日志到 kibana 展示
    首先是nginx.conf的日志格式json格式很多,不一定非要这个log_formatjson'{"access_time":"$time_iso8601","remote_addr":"$remote_addr","remote_user":"$remote_user","request":"$request&qu......
  • 日志级别
    日志级别1、Error:只记录错误信息2、Nothing:不记录任何信息,执行效率最高。3.Minimal:记录最少的信息4.Basic:记录基本信息5、Detailed:记录详细信息6Debug:记录调试信息7、Rowlevel:转换过程中的每一行都会记录下来,日志最详细,执行效率最低。......
  • EMQX学习笔记:常用功能
    本文更新于2023-03-01,使用EMQX4.4.3。禁止匿名登录修改/etc/emqx/emqx.conf中相应的行如下:allow_anonymous=false重启EMQX。emqxstartHTTP回调CONNECT身份验证配置鉴权回调URL。根据实际情况修改/etc/emqx/plugins/emqx_auth_http.conf中相应的行如下:auth.http.au......