首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Serilog :如何不记录一些请求(或不同级别的记录)

Serilog是一个强大的日志库,它可以帮助开发人员在应用程序中实现灵活的日志记录。要实现不记录某些请求或不同级别的记录,可以使用Serilog的过滤器功能。

Serilog提供了多种过滤器,可以根据需要选择适合的过滤器来实现日志记录的控制。以下是一些常用的过滤器:

  1. Level Filtering(级别过滤):通过设置最低记录级别,可以控制只记录达到或超过该级别的日志消息。例如,如果只想记录警告级别及以上的日志消息,可以将最低记录级别设置为Warning。
  2. Expression Filtering(表达式过滤):通过使用表达式来过滤日志消息,可以根据特定的条件决定是否记录该消息。例如,可以使用表达式过滤器来排除某些请求的日志记录,或者根据特定的条件只记录某些请求。
  3. Source Filtering(源过滤):通过指定源来过滤日志消息,可以控制只记录特定源产生的日志消息。这对于区分不同模块或组件的日志非常有用。
  4. Property Filtering(属性过滤):通过指定特定属性的值来过滤日志消息,可以根据属性的值决定是否记录该消息。例如,可以使用属性过滤器来仅记录特定用户的请求。

要使用Serilog的过滤器功能,需要在配置Serilog时设置相应的过滤器。以下是一个示例配置,演示如何使用过滤器来实现不记录某些请求的日志记录:

代码语言:txt
复制
Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .Filter.ByExcluding(logEvent =>
    {
        // 根据需要设置过滤条件
        // 这里演示不记录请求路径为"/api/ignore"的日志消息
        return logEvent.Properties.ContainsKey("RequestPath") &&
               logEvent.Properties["RequestPath"].ToString().Contains("/api/ignore");
    })
    .WriteTo.Console()
    .CreateLogger();

在上述示例中,通过使用Filter.ByExcluding方法和一个表达式来排除具有特定请求路径的日志消息。可以根据实际需求修改表达式以满足不同的过滤条件。

关于Serilog的更多信息和使用方法,可以参考腾讯云相关产品和产品介绍链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Serilog高级玩法之用Serilog记录所选终结点附加属性

/ 在我的上一篇文章中,我描述了如何配置Serilog的RequestLogging中间件为每个请求创建“摘要”日志,以替换默认情况下从ASP.NET Core获取的10个更多日志。...在本文中,我将展示如何向Serilog的摘要请求日志中添加其他元数据,例如请求的主机名,响应的内容类型从ASP.NET Core 3.0中使用的终结点路由中间件所选择的端点名称。...但是,如果您将原始的10条日志作为一个整体来看,则与Serilog摘要日志相比,它们确实会在结构日志模板中记录一些其他属性。...向Serilog请求日志添加扩展数据 在上一篇文章中,我展示了如何将Serilog请求日志记录添加到您的应用程序中,因此在此不再赘述。...总结 默认情况下,用Serilog请求日志记录中间件替换ASP.NET Core基础结构日志记录时,与开发环境的默认日志记录配置相比,您会丢失一些信息。

1.6K10

如何使用Serilog.AspNetCore记录ASP.NET Core3.0的MVC属性

,我描述了如何配置Serilog的RequestLogging中间件以向Serilog请求日志摘要中添加其他属性(例如请求主机名选定的端点名称)。...但是,就目前情况而言,MVC内仍然存在一些不容易从应用程序其他部分访问的特性。当我们考虑到我们的Serilog请求记录中间件的时候,这意味着有些属性我们也是不容易记录的。...我还将展示如何在page过滤器中添加RazorPages特定的值(HandlerName)。 使用自定义过滤器记录MVC属性 过滤器相当于为每个请求运行的类似于MVC的微型中间件管道。....总结 默认情况下,当用Serilog请求日志记录中间件替换ASP.NET Core基础结构中的日志记录时,您会丢失一些信息(与开发环境的默认配置相比)。...下一节让我们一起探讨下如何从Serilog请求记录中排除运行状况检查端点。

3.6K10

如何利用Serilog的RequestLogging来精简ASP.NET Core的日志输出

在这个简短的系列文章中,我将介绍如何使用Serilog的ASP.NET Core请求日志记录功能。...当后面的中间件最终生成响应(抛出异常),则响应通过中间件管道传递回到请求记录器,并在其中记录了结果并写入概要日志信息。 Serilog只能记录到达中间件的请求。...完成整理工作所剩下的就是过滤掉我们当前正在记录的信息日志消息。...摘要 在本文中,我描述了如何使用Serilog.AspNetCore的请求日志记录中间件来减少为每个ASP.NET Core请求生成的日志数,同时仍记录摘要数据。...当后续的中间件生成响应(引发异常)时,响应将通过中间件管道返回到请求记录器,记录记录结果并编写摘要日志消息。

1.6K10

如何从Serilog请求日志记录中排除健康检查终结点

第1部分-使用Serilog RequestLogging减少日志详细程度 第2部分-使用Serilog记录所选的终结点属性 第3部分-使用Serilog.AspNetCore记录MVC属性 第4部分-.../ 在本系列的前几篇文章中,我描述了如何配置Serilog的RequestLogging中间件以向Serilog请求日志摘要中添加附加属性,例如请求主机名选定的端点名称。...如果是这样,它将创建一个Error级别的摘要日志,否则将创建一个Information级别日志。 假设您希望将摘要日志记录为Debug而不是Information。...在下面的屏幕截图中,我将Serilog配置为也记录Verbose日志,以便您可以查看运行状况检查请求-通常会将它们过滤掉! ?...如果您选择的级别低于最低级别,它将被完全过滤掉,并且不会被记录。 我还展示了您可以使用这种方法来过滤通过调用健康检查端点生成的公共(低级别的请求日志。

1.3K10

【愚公系列】2022年12月 Elasticsearch数据库-.NET CORE的Serilog=>Rabbitmq=>Logstash=>Elasticsearch的日志传输(四)

当然它可以单独出现,作为日志收集软件,你可以收集日志到多种存储系统临时中转系统,MySQL,Redis,Kakfa,HDFS, Lucene,Solr等,并不一定是ElasticSearch。...logstash具有200多个插件,可以接受各种各样的数据(日志、网络请求、关系型数据库、传感器物联网等等) Logstash工作过程: Logstash 就像管道符一样,读取输入数据,然后处理过滤数据...对从数据源获取到的数据按照需求进行处理(:解析数据、删除字段、类型转换等)。...logstash将数据转换为事件时候,会给事件添加一些额外的信息。...": { "MinimumLevel": { "Default": "Debug", //最小日志记录级别 "Override": { //系统日志最小记录级别

65330

【ASP.NET Core 基础知识】--部署和维护--日志记录和错误处理

它更多地涉及到收集、存储和分析各种类型的信息,这些信息可以包括但不限于: 事件记录记录系统中的各种事件,应用程序启动、请求处理、错误发生等。...状态信息:记录系统运行时的状态信息,CPU使用率、内存占用等。 调试信息:用于排查问题和调试代码的信息,变量值、函数调用栈等。 性能指标:用于评估系统性能的指标,请求响应时间、吞吐量等。...以下是一些常见的第三方日志记录提供程序及其示例: SerilogSerilog 是一个功能强大的日志记录库,它提供了丰富的配置选项和插件扩展,支持多种输出格式和目的地,控制台、文件、数据库等。...异常上下文记录:除了记录异常信息外,日志记录还可以记录异常发生时的上下文信息,当前用户、请求信息、环境变量等。这些上下文信息有助于开发人员了解异常发生的背景和条件,从而更好地理解问题的根本原因。...异常级别标识:日志记录可以使用不同的日志级别来标识异常的严重程度,Debug、Info、Warning、Error、Fatal等。

4800

【BlogBook书】6、Serilog:日志管理

框架高度集成Serilog,继承ASP.NETCore官方的ILogger接口,作为记录整个系统应用生命周期的日志工具,涵盖了平时企业应用的常见场景: 1、不同日志级别的记录;2、支持将日志输出到控制台...;3、支持日志持久化到数据库;4、支持完整记录Sql执行日志;5、支持输出日志到文件;6、支持配置Seq日志中心; 一、相关的依赖注入配置 builder.Host.AddSerilogSetup();..."HitRate": 50, "Connection": "WMBlogLog.db" //sqlite只写数据库名就行,可以替换其他数据库,并修改DBType即可 }, ] 还有一些配合其他功能...logger.LogInformation("xxxxxxxxxxxxxxxxxxx"); return Success(await _blogArticleServices.GetBlogDetails(id)); } 2、直接使用...Serilog的Log类 [HttpGet] [Route("DetailNuxtNoPer")] public async Task> DetailNuxtNoPer

17910

零基础写框架(3): Serilog.NET 中的日志使用技巧

"0HMOONQO5ONKU:00000003", "RequestPath": "/WeatherForecast", "ConnectionId": "0HMOONQO5ONKU"} 如果需要为请求上下文添加一些属性信息...对请求上下文添加属性信息,比如当前请求的用户信息,在本次请求作用域中使用日志打印信息时,日志会包含这些上下文信息,这对于分析日志还有帮助,可以很容易分析日志中那些条目是同一个上下文。...有一个类型,我们需要在执行 SayHello 之前和之后打印日志,将参数和返回值记录下来。...Before 会在被代理的方法执行前被代理的属性调用时生效,你可以通过 AspectContext 上下文,获取、修改传递的参数。...After 在方法执行后属性调用时生效,你可以通过上下文获取、修改返回值。

12710

用ASP.NET Core 2.0 建立规范的 REST API -- DELETE, UPDATE, PATCH 和 Log

POST和GET,这篇要介绍建立Richardson成熟度2的DELETE, PUT, PATCH....现在的代码是为API的消费者返回了500状态码,并返回了一些错误信息。这样做我们就把异常信息给丢掉了,但是又不应该把异常信息传递给API消费者,而我们确实需要这个异常信息,所以我们把异常记录到日志。...然后在Action里正常记录日志就可以了: ? 就不测试了。 使用Serilog 在实际应用中只把日志记录到控制台Debug窗口是没用的,最好的办法还是记录到文件或者数据库等。...支持ASP.NET Core的第三方Log提供商有很多,NLog,Serilog等等。这里我使用Serilog(https://github.com/serilog/serilog)。...使用Enruch.FromLogContext()可以让程序在执行上下文时动态添加移除属性(这个需要看文档)。 按日生成记录文件,日志文件名后会带着日期,并放到./logs目录下。

1.8K20

造轮子之日志

在日常使用中日志也是我们必不可少的一环,在原生日志组件中支持的日志驱动比较少,所以我们需要使用一些三方日志组件来扩展我们的日志记录。...集成Serilog 三方日志组件有很多,NLOG,LOG4NET等等,这里个人习惯,使用SerilogSerilog的集成方式非常简单。...安装Nuget包 Serilog.AspNetCore Serilog.Sinks.Async Serilog.Sinks.File 在Program中添加代码: var builder = WebApplication.CreateBuilder...上面代码我们配置了日志记录级别,和相关过滤条件,以及控制台输出和文件输出,文件输出自动按每天分文件。...这里使用了一个Serilog.Sinks.Async的包,这个包把日志采用异步的方式写入,可以提高我们日志的写入性能。

15810

.NET Core开发实战(第20课:结构化日志组件Serilog记录对查询分析友好的日志)--学习笔记

20 | 结构化日志组件Serilog记录对查询分析友好的日志 之前讲解的日志框架,记录的日志都是文本,而且是非结构化的,这样一串串文本实际上不利于我们去做分析 结构化的日志它的好处就显而易见,它可以让我们更易于去检索...这个包实际上依赖了 Serilog 很多的内置的包 比如核心的 Serilog (2.8.0) 配置 Serilog.Settings.Configuration (3.1.0) Console 的输出...) 我们在 Program 这里提前读取一下配置,然后传递给 Serilog 的初始化过程,这里我们把 Main 函数进行了稍微的改造,以让 Serilog 可以接替整个默认的日志记录框架 namespace...可以看到每一行都是一个 json,也就是将日志输出为 json 格式,这就意味着可以在整个日志系统里面以 json 的格式去检索数据,比如 SourceContext 就是 Logger 的 name 它还记录请求上下文...需要单独配置,它与之前的配置方式略有不同,它需要配置最小的日志输出级别,默认是 Information Override 是重载上面 Logging 定义的日志级别 设置 Microsoft 为 Error

1.2K10

asp.net core之日志

"Microsoft.AspNetCore" 类别在日志级别 Warning 更高级别记录。...EventSource EventLog AzureAppServicesFile AzureAppServicesBlob ApplicationInsights 日志类别级别 在上面我们测试时使用的实例包含了不同别的日志...Warning:表示应用程序遇到了一些非严重的问题。 Error:表示应用程序遇到了可恢复的错误。 Critical:表示应用程序遇到了严重的错误,可能导致应用程序崩溃无法继续运行。...以下为官方说明图: 在我们日常开发中,应该选用适合自身业务的日志级别去记录日志。日常开发时我们可以使用Debug,发布到线上环境时把日志级别调高,就不会输出debug日志信息。...日志记录提供程序 在上述日志配置中,我们提到了日志提供程序。ASP.NET Core 提供了多种日志记录提供程序,可以将日志信息输出到不同的目标,例如控制台、文件、数据库等。

21810

dotNET 7:最小 API 使用

从 MapGet 这个方法名可以看出,这是一个 Get 请求的接口方法,如果要使用 Post ,可以使用 MapPost 。...添加一个接口方法非常简单,如下图: 使用 Serilog 日志框架 1、安装 NuGet 包:Serilog.AspNetCore,安装这一个就会包含 SerilogSerilog.Sink.File...2、在 Program 类的 builder 创建之后,添加对 Serilog 的使用: using Serilog; var builder = WebApplication.CreateBuilder...文本文件,里面记录了所有日志; 4、在上面添加的 helloworld 方法中使用日志: app.MapGet("/helloworld", () => { Log.Information(...总结 1、对于一些简单的接口场景,使用最小 API 比较方便,都在一个文件中处理; 2、除了依赖注入式通过方法参数,其他很多地方跟之前用法类似,就是将 Startup 中 ConfigureServices

68330

【愚公系列】2023年01月 .NET CORE工具案例-DotnetSpider爬虫框架的简单使用

调度器可以采用不同的 Hash 去重器,通常使用默认的 HashSetDuplicateRemover 即可,若是采集量很大可以使用 BloomFilterDuplicateRemover。...下载代理器:下载代理器可以部署在不同的机器上,若是单机爬虫则是每个爬虫实例会启动一个单独的下载代理器。...统计服务:统计各个爬虫和下载代理器的运行状态,爬虫总的请求数、成功的请求数等,下载代理器总的成功请求数、总的消耗时间等 请求供应接口:在很多场景下可能下载请求是可以提前知道存在某个地方(可以是文件、...数据库) 请求配置(Spider.ConfigureRequest):一般情况下请求都可以自动构建好,但在某些特别情况下加 sign 等,可以统一处理。...Install-Package Serilog.Sinks.Console Install-Package Serilog.Sinks.File Install-Package Serilog.Sinks.PeriodicBatching

1.1K30

【愚公系列】2023年10月 .NET CORE工具案例-HTTP请求之WebApiClientCore

它支持基本的 HTTP 请求 GET、POST、PUT、DELETE 等,并提供了丰富的配置选项,请求超时、请求头、代理等。...,预定义的特性(Attribute),用于标记类、方法、属性等元素,以提供一些额外的功能行为。...在WebApiClientCore中,内置特性是指一些预定义的特性(Attribute),用于对HTTP请求和响应进行描述和控制。这些特性可以方便地设置请求头、请求参数、请求内容、响应内容等。...特性名称 功能描述 备注 HttpHostAttribute 请求服务 http 绝对完整主机域名 优先比 Options 配置低、它也支持直接在 interface 级别使用 HttpGetAttribute...与PUT请求不同的是,PATCH方法通常用于对资源进行部分修改,也就是只修改资源的某一部分,而不是对整个资源进行替换。

1K11

【愚公系列】2022年12月 .NET CORE工具案例-PLG轻量级日志可视化服务

文章目录 前言 1.Serilog简介 2.Grafana简介 3.Loki是什么 一、Serilog对接Grafana轻量级日志可视化服务 1.Grafana部署 2.Loki部署 3.promtail...部署 4.测试.NET Core写入日志效果 5.测试查询日志 总结 ---- 前言 日志功能是几乎所有程序系统都必备的一个功能。...该文章通过使用Loki+Grafana来实现日志记录与可视化查询。 1.Serilog简介 Serilog 是 ASP.NET Core 的一个插件,能够简化日志记录。...": { "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.Grafana.Loki" ], "MinimumLevel...构造函数注入日志服务,并进行输出四个不同类型的日志 using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace

63030

【ES三周年】elasticsearch 认知

在判断该使用ES还是关系型数据库之前,要先比较一下这两种不同别的产品。...另外,分库分表会对一些业务造成延迟,查询结果的合并及多表的Join操作。...您有分析商业智能需求,并且希望可以对大量数据(数百万数十亿条记录)进行快速研究、分析、可视化并提出特定的问题。...搜索时,前端应用先向搜索模块发起搜索请求,然后搜索模块组织搜索DSL向ES发起请求,ES响应搜索模块的请求开始搜索,并将搜索到的商品信息(名称、价格、地理位置等)进行封装,然后把数据传送给搜索模块,进而数据再由搜索模块传递到前端进行展现...查询时客户端可以把查询请求分发到ES中,ES从索引中查询并返回符合条件的记录主键,客户端再根据返回的记录主键请求RDBMS得到实时数据。

1.2K40
领券