本文主要内容为.NET Core的日志记录程序和常使用的日志记录框架的简单使用 首先,打开VS2019新建一个ASP.NET Core Web Api项目,项目创建好后会有一个集成好的天气预报的类和控制器...直接在控制器中创建LoggerFactory时调用提供程序的Add方法,使用LoggerFactory来创建 ILogger 1)控制器 [ApiController] [Route("[controller...-- logger名称为ApplicationInfoLog,阻止父logger中的appender --> <logger name="ApplicationInfoLog" additivity...appsettings.json中指定的日志配置覆盖了对SetMinimumLevel的任何调用。...:NLog Configuration-file 还有一篇翻译文章方便查看:NLog类库使用探索——详解配置 5、Serilog 1)使用NuGet安装Serilog.AspNetCore包 2)配置
/ 在本系列的前几篇文章中,我描述了如何配置Serilog的RequestLogging中间件以向Serilog的请求日志摘要中添加附加属性,例如请求主机名或选定的端点名称。...当您有一个访问比较频繁的端点时,这非常有用,因为为每个请求都进行记录几乎没有什么价值。 健康检查访问较频繁 这篇文章的动机来自我们在Kubernetes中运行应用程序时看到的行为。...定制用于Serilog请求日志的日志级别 在上一篇文章中,我展示了如何在Serilog请求日志中包括所选终结点。...在下一节中,我将展示如何在不影响其他请求的情况下识别这些请求。 将自定义日志级别用于健康检查终结点请求 我们需要的是能够在写入摘要日志时识别出健康检查的请求的能力。...如果是,请求日志将使用Verbose级别写入,这通常会被过滤掉。为了更灵活,您可以自定义在这个帖子中显示的日志来处理多个端点名称,或者任何其他的标准。
第1部分-使用Serilog RequestLogging来简化ASP.NET Core的日志输出(本篇文章) 第2部分-使用Serilog记录所选的端点名称[敬请期待] 第3部分-使用Serilog.AspNetCore...在第一篇文章中,我将讲述如何将Serilog的RequestLoggingMiddleware添加到您的应用程序,以及它提供的好处。在后续文章中,我将描述如何进一步自定义行为。...将Serilog添加到应用程序 使用Serilog RequestLoggingMiddleware 的一个前提条件就是您正在使用Serilog!...显示的持续时间略短于Kestrel在后续消息中记录的值。这是可以预期的,因为Serilog仅在请求到达其中间件时才开始计时,而在返回时停止计时(在生成响应之后)。...如果您已经在使用Serilog,则非常容易启用。只需在您的Startup.cs文件中调用UseSerilogRequestLogging()。 当请求到达此中间件时,它将启动计时器。
但是官方建议是使用第一种方式 我们创建的默认asp.net core模板中appsettings.json已经包含了默认的日志配置参数: { "Logging": { "LogLevel...Default表示默认,即没有指定特定命名空间日志级别时所用的级别。...{PROVIDER NAME}.LogLevel 中的设置会覆盖 Logging.LogLevel 中的设置,其中 {PROVIDER NAME} 占位符是提供程序名称。...如日常开发时我们可以使用Debug,发布到线上环境时把日志级别调高,就不会输出debug日志信息。 同时减少日志输出也可以提高部分性能。...> logger) { _logger = logger; } 在一些特殊场景中,我们也可以通过注入ILoggerFactory去创建我们指定类别名称的一个ILogger实例。
,我描述了如何配置Serilog的RequestLogging中间件以向Serilog的请求日志摘要中添加其他属性(例如请求主机名或选定的端点名称)。...这也仅适用于在HttpContext可用的值。在这篇文章中,我将展示如何在过滤器中使用IDiagnosticContext,以及将MVC特定值添加到日志中。...我还将展示如何在page过滤器中添加RazorPages特定的值(如HandlerName)。 使用自定义过滤器记录MVC属性 过滤器相当于为每个请求运行的类似于MVC的微型中间件管道。....public void OnActionExecuted(ActionExecutedContext context) { } } 在将MVC服务添加到应用程序中时...总结 默认情况下,当用Serilog的请求日志记录中间件替换ASP.NET Core基础结构中的日志记录时,您会丢失一些信息(与开发环境的默认配置相比)。
您的应用程序通过像Serilog这样的框架发送结构化事件: Log.Information("Hello, {Name}!"...Seq主要功能: 丰富的事件数据 -以结构化形式记录上文信息与应用程序事件,支持消息模板将文本数据与结构话数据无缝连接。下图中所有属性都是由使用者自定义的。 ?..."ApiKey": "fCT0LNqspu3kituQMb", //在Seq系统创建的项目名称KEY值。...在实际使用中我们可以根据公司业务来建立统一的消息模板,对项目日志分类管理并查看。...总结 由于现在我使用的是免费版的,在很多方面有限制,如:不能将本地改为公网地址(可通过反向代理解决),不支持邮件预警。
之前写过很多关于b站的文章了分享几个让 b 站开挂的脚本 ,今天再分享个b站自动执行任务的软件,详细功能如下: 每日获取满额升级经验(登录、投币、点赞、分享视频),支持指定支持up主 每天漫画签到 每天直播签到...先用本地版本,打开配置文件appsettings.json复制cookie进去,再打开exe文件,执行效果: 然后使用腾讯云https://console.cloud.tencent.com/scf/...每天自动执行脚本,先自定义创建一个云函数,函数名称bilibili_tool,运行环境是CustomRuntime,函数代码直接上传下载好的zip包 ,执行方法index.main_handler。...RandomSleepMaxMin 为 0 ,Ray_Serilog__WriteTo__9__Args__token为pushplus的token,这样就可以收到微信通知,异步执行勾选启用,,状态追踪勾选启用...: 最后说下自定义配置,就是环境变量的设置,如果需要加多账号再加个Ray_BiliBiliCookies__2,Ray_BiliBiliCookies__3,以此类推,如果需要指定支持的up主添加Ray_DailyTaskConfig
.NET 中的日志使用技巧 Serilog Serilog 是 .NET 社区中使用最广泛的日志框架,所以笔者使用一个小节单独讲解使用方法。 示例项目在 Demo2.Console 中。...serilog.json 文件内容复制到 appsettings.json 中。...对请求上下文添加属性信息,比如当前请求的用户信息,在本次请求作用域中使用日志打印信息时,日志会包含这些上下文信息,这对于分析日志还有帮助,可以很容易分析日志中那些条目是同一个上下文。...在微服务场景下,会使用 ElasticSearch 等日志存储引擎查询分析日志,如果在日志中添加了相关的上下文属性,那么在分析日志时可以通过对应的属性查询出来,分析日志时可以帮助排除故障。...,因此我们可以在配置文件中覆盖配置,避免打印普通的日志。
这是该系列的第二篇文章:在ASP.NET Core 3.0中使用Serilog.AspNetCore。...在本文中,我将展示如何向Serilog的摘要请求日志中添加其他元数据,例如请求的主机名,响应的内容类型或从ASP.NET Core 3.0中使用的终结点路由中间件所选择的端点名称。...向Serilog请求日志添加扩展数据 在上一篇文章中,我展示了如何将Serilog请求日志记录添加到您的应用程序中,因此在此不再赘述。...Other middleware } 现在,当您发出请求时,您将看到添加到Serilog结构化日志中的所有其他属性: ?...但是MVC的相关属性是个例外,它们是MVC中间件“内部”的特性,例如action 名称或RazorPage处理程序名称。在下一篇文章中,我将展示如何将它们添加到Serilog请求日志中。
它就像 Global.asax 文件,我们传统的 .NET 应用程序。如名称建议的那样,在应用程序启动时首先执行它。...名称“Startup”是按照ASP.NET Core约定进行的。 但是,您可以给Startup类指定任何名称,只需在UseStartup ()方法中将其指定为通用参数即可。...它包括内置的IoC容器,以使用构造函数提供相关的对象。 在ConfigureServices方法中,可以使用内置IoC容器注册依赖类。注册依赖类后,可以在应用程序中的任何位置使用它。...ASP.NET Core Startup类中的Configure()方法 在Configure方法中,我们可以使用内置IoC容器提供的IApplicationBuilder实例为asp.net核心应用程序配置应用程序请求管道...appsettings.json文件是一个应用程序配置文件,用于存储配置设置,例如数据库连接字符串,任何应用程序范围的全局变量等。
Startup.cs 文件: 作用: 包含应用程序的启动配置,包括中间件的配置、依赖注入的设置等。 配置内容: 配置服务和中间件,以及应用程序启动时的初始化操作。...主要的配置文件是 appsettings.json,但还可以使用其他配置源,如环境变量、命令行参数等。...配置方式: 这些文件会覆盖主 appsettings.json 中的相应配置项。...} 环境变量: 作用: 允许在不同环境中设置配置项,覆盖 appsettings.json 中的值。..." 命令行参数: 作用: 允许通过命令行参数设置配置项,覆盖其他配置源中的值。
,使用项目名称启动默认会忽略进程内进程外的区别,而使用iis express 和 iis 都是明显的不同。...,models 中模型类,views 下是视图一般是cshtml 文件,program.cs 是整个asp.net core web应用程序的启动类,是整个程序的起点入口,startup.cs 是配置asp.net...asp.net core 项目下的launchsettings.json 和appsettings.json 一般而言,launchsettings.json 是整个项目的项目启动配置文件,在这里配置是整个项目启动时需要进行的各种配置...,如程序运行环境的指定,同时launchsettings 文件仅使用于本地开发环境,我们不需要把它发布到生产环境中。...而在项目发布到生产环境时需要使用某些独立的配置,就需要使用appsettings 配置文件,在该文件中将存放应用程序运行的配置信息,比如数据库连接字符串等。
状态信息:记录系统运行时的状态信息,如CPU使用率、内存占用等。 调试信息:用于排查问题和调试代码的信息,如变量值、函数调用栈等。 性能指标:用于评估系统性能的指标,如请求响应时间、吞吐量等。...FileNotFoundException:FileNotFoundException是在尝试访问文件时找不到指定文件时引发的异常。...包含品牌标识:在错误页面中包含你的应用程序的品牌标识,比如应用程序的名称、标志或图标,以提醒用户他们正在使用你的应用程序,并增强品牌的可识别性。...以下是日志记录在错误处理中的几个应用场景: 异常信息记录:当应用程序发生异常时,错误处理机制会捕获异常并记录相关信息,如异常类型、堆栈跟踪、异常消息等。...通过使用这些内置提供程序,开发人员可以方便地记录日志并查看应用程序的运行情况。 然后,我们探讨了第三方日志记录提供程序,例如 Serilog 和 NLog。
因此一款好的日志组件将至关重要,在.NET 的开源生态中,目前主要有Serilog、Log4Net和NLog三款优秀的日志组件,但相较而言,NLog功能更加强大且扩展性强,允许开发者在仅修改配置文件的方式来丰富日志输出内容...NLog 日志组件的使用 那在实际使用中如何集成呢?接下来以ASP.NET Core 应用为例进行详细讲解。...添加NLog 配置文件:官方提供两种方式用来添加配置,一种是添加nlog.config文件使用xml格式进行配置,一种是直接在appsettings.json文件中使用json格式进行配置,这里推荐使用...processname}字段获取,env字段是通过{environment}从指定的环境变量获取,以aspnet-为前缀的字段则是通过NLog.Web.AspNetCore中预置的字段中获取,因此,在配置...,还有很多其他字段,比如从配置文件读取字段,从应用读取身份信息,提取请求数据包,读取请求头,截取QueryString中的指定字段。
这里面有一个问题就是,在使用容器部署时,每次修改配置文件都需要重新构建镜像。当然你也可能会说,我的配置文件很稳定不需要修改,但你又如何确保配置文件中一些机密配置的安全问题呢?...比如暴露了你的远程数据库的连接信息,哪天被员工不小心删库跑路了呢? 那接下来就来讲解下如何在.NET Core 中正确使用ConfigMap。...ConfigMap/Secret K8S中引入了ConfigMap/Secret来存储配置数据,分别用于存储非敏感信息和敏感信息。其目的在于将应用和配置解耦,以确保容器化应用程序的可移植性。...ConfigMap volumeMounts:用来指定将ConfigMap中的配置挂载到容器的哪个路径 subPath:用来指定引用ConfigMap的哪个配置节点。...ConfigMap的配置覆盖。
通过组合 Docker,ElasticSearch,Kibana,ASP.NET Core 和 Serilog ,您获得了前所未有的便利性和功能,再也没有理由不再将日志记录整合到应用程序中了。。...• 一句话总结今天我们学习到达的目标? 如何在 ASP.NET Core 使用 Elasticsearch 和 Kibana 来存储和展示我们应用程序的请求详细日志。...• 什么是 Serilog ? Serilog 是 ASP.NET Core 的一个插件,可以简化日志记录。...三、使用 Docker 快速安装 Elasticsearch 和 Kibana • 为什么我需要 ElasticSearch 和 Kibana ? 如果您曾经构建过应用程序,那么你一定记录过日志。...可以将 ElasticSearch 视为数据库,将 Kibana 视为 Web 用户界面,您可以使用它在 ElasticSearch 中构建图表和查询数据
当我们从Visual Studio或使用.NET Core CLI运行此ASP.NET Core项目时,将使用此文件中的设置。 此文件仅用于本地开发环境。...如果您希望您的Asp.Net Core 应用程序在发布和部署应用程序时使用某些独立的设置,请将它们存储在appsettings.json文件中。...我们通常将应用程序的配置信息存储在此文件中,比如数据库连接字符串。 我们还可以使用不同环境的appsettings.json文件。例如,appsettings.Staging.json用于临时环境。...在- ASP.NET Core中,除了appsettings.json文件外,我们还可以配置源,如环境变量,用户密钥,命令行参数甚至创建属于我们自己的自定义配置源。...默认值可以是: 项目 IISExpress IIS 此值与项目文件中的AspNetCoreHostingModel元素的值会有对应关系,会一起指定要启动的内部和外部Web服务器(反向代理服务器)。
代码阻塞时,线程可能继续执行其他代码或在同步方法中阻塞。...此版本包括对轻松实现批处理的支持,以及实验性点名称捕获支持。...jun1s/items/c000763f31e6a42bdd3b 如何在 ASP.NET Core MVC 中通过操作筛选器从 DI 容器中检索和使用服务。...-errorboundary 如何在 .NET 8 中使用 Blazor 中的 ErrorBoundary 处理错误以及需要注意的事项。.../ 如何在使用 AsyncEnumerable 时批量处理消息。
注意的是,在appsettings.json 下可以更具需求建立多个settings.json ,如development.json ,productionsetting.json 等json 配置文件...在program 类中使用 ConfigureAppConfiguration 方法以指定应用的配置提供程序,即 将自定义的配置json 文件添加到应用程序的配置文件集合中。...新建实体类,类名需要和节点名称一致,即 在自定义json 配置文件中 需要读取的具体节点信息的节点名称 保持一致。...asp.net core 读取appsettings.json 配置信息 方式一: 使用IConfiguration 接口的方式 appsettings.json 配置文件已经定义好所需的节点信息,当然可以不一定是...方式二: 使用IOptions 接口的方式 书写好对应 appsettings.json 配置文件。
三、配置选项 真正的应用开发总是会使用到配置选项,如演示程序中性能指标采集的时间间隔就应该采用配置选项的方式来指定。由于涉及对性能指标数据的发送,所以最好将发送的目标地址定义在配置选项中。...从名称可以看出,ConfigureAppConfiguration方法的目的在于初始化应用程序所需的配置。...《读取配置数据[下篇]》已经演示了如何提供针对具体环境的配置文件,具体的做法很简单:将共享或者默认的配置定义在基础配置文件(如appsettings.json)中,将差异化的部分定义在针对具体承载环境的配置文件...前者是必需的,后者是可选的,这样做的目的在于确保即使当前承载环境不存在对应配置文件的情况也不会抛出异常(此时应用只会使用appsettings.json文件中定义的配置)。...下面以命令行的形式运行修改后的应用程序,承载环境通过命令行参数environment来指定。
领取专属 10元无门槛券
手把手带您无忧上云