问题标签 [serilog-exceptions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - asp.net core - 从 appsettings.json 设置 Serilog.Exceptions
我需要使用 Serilog.Exceptions 包来捕获异常。从 appsettings.json 读取 Serilog
在我的startup.cs
但它不起作用。我是否需要在 appsettings.json 中为 Serilog.Exceptions 包添加一些其他属性?还是 appsettings.json 配置正确?我究竟做错了什么?谢谢
c# - Serilog.Exception 解构器的 JSON 配置
我正在将 Serilog 添加到项目中,我也特别想添加Serilog.Exceptions
。按照指南,我成功地添加了异常丰富器,但我还需要链接页面中提到的解构。
使用流畅的配置可以正常工作:
但是,我正在努力使用这样的 JSON 配置对其进行配置:
这是我已经尝试过的方法,但运气不佳:
并且:
如何使用 JSON 配置流畅的版本?
c# - 是否可以在 Serilog.Exceptions 中禁用基于反射的解构器?
该包Serilog.Exceptions
非常适合记录异常。它有大量支持的异常类型。
例如当前设置:
目前,如果没有找到异常类型的解构器,它会退回到“基于反射的解构器”。
由于性能,但更重要的是可预测性,我们想禁用反射回退。
我尝试使用 来配置它DestructuringOptions
,例如禁用一些默认析构函数或将 DestructuringDepth 设置为0
。
不幸的是,这些选项不起作用:
- 不在
ReflectionBasedDestructurer
默认析构函数列表中 - 不允许设置
DestructuringDepth
为(例外)0
知道如何为此配置 Serilog.Exceptions 吗?
logging - serilog :仅在应用程序停止后记录
我相信你做得很好,我第一次使用 Serilogs。我使用 ASP CORE 3.0。我注意到,Serilogs 仅在我停止应用程序后记录事件,它不记录实时事件。
我的 appsettings.Development.json
程序.cs
启动.cs
项目文件
问题 :
只有在我停止应用程序后才会记录
程序“[42520] LoggingApi.Edge.dll”已退出,代码为 0 (0x0)**。
[18:06:57 INF] 现在监听:http://localhost:5000 [18:06:57 INF] 请求开始 HTTP/1.1 GET http://localhost:5000/ [18:06:57 INF] 应用程序开始了。按 Ctrl+C 关闭。[18:06:57 INF] 托管环境:开发 [18:06:57 INF] 内容根路径:/development/logging-api/LoggingApi.Edge [18:06:57 INF] HTTP GET / 在 101.3370 毫秒内响应 404 [18:06:57 INF] 请求在 795.6172 毫秒内完成 404 [18:06:59 INF] 请求开始 HTTP/1.1 GET http://localhost:5000/ [18:06:59 INF] HTTP GET / 响应 404 1.1243 ms [18:06:59 INF] 请求在 3.2939000000000003ms 完成 404 [18:07:31 INF] 请求开始 HTTP/1.1 GET http://localhost:5000/api/actionlogs/internal/5db0f148ba2a6056da8463e5应用程序/json [18:07:31 INF] 执行端点'LoggingApi.Edge.Controllers.ActionLogsController.GetByIdAsync (LoggingApi.Edge)' [18:07:31 INF] 路由匹配 {action = "GetById", controller = "动作日志”}。在控制器 LoggingApi.Edge.Controllers.ActionLogsController (LoggingApi.Edge) 上执行带有签名 System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] GetByIdAsync(System.String) 的控制器操作。[18:07:32 INF] 执行 ObjectResult,写入“LoggingApi.Data.Models.ActionLog”类型的值。[18:07:32 INF] 在 973.6433000000001ms [18:07:32 INF] 执行的操作 LoggingApi.Edge.Controllers.ActionLogsController.GetByIdAsync (LoggingApi.Edge) [18:07:32 INF] 执行端点'LoggingApi.Edge.Controllers.ActionLogsController.GetByIdAsync (LoggingApi.边缘)' [18:07: 32 INF] HTTP GET /api/actionlogs/internal/5db0f148ba2a6056da8463e5 在 1067.5599 毫秒内响应 200 [18:07:32 INF] 请求在 1069.1802 毫秒内完成 200 应用程序/json;字符集=utf-8
serilog - 如何在 appsettings.json 中配置 Serilog.Exceptions.SqlServer
我正在使用 appsettings.json 来配置 Serilog。我补充说Serilog.Exceptions
,这就像一个魅力。
但由于我使用的是 Sql Server 和 EF Core,文档说我还必须配置Serilog.Exceptions.SqlServer
和Serilog.Exceptions.EntityFrameworkCore
.
根据此文档,这必须添加到浓缩器中。在 C# 代码中,这将是:
我无法弄清楚如何在appsettings.json
. 任何人都可以帮助我吗?
serilog - 如何为我的项目中的每个命名空间配置具有不同日志级别的 Serilog?我想通过 application.json 配置文件来做
我们正在编写一个新的日志功能并注入到我们现有的服务中。
以下是我们的做法:
1) 在 Program.cs 中使用 UseSerilog() 调用设置 Serilog
2) 在 appsettings.json 中设置 Serilog 配置以设置接收器以写入日志文件。
3) 编写了一个 Facade Custom Logger 类,它使用 Serilog 全局 Log 实例在内部进行日志记录。
4) 通过 DI 将 IMyLogger 注入到我现有的所有服务中
5)在ConfigureServices()中注册所有服务(Logger、Project相关服务)
一切正常。但是我想在我的应用程序中为不同的命名空间设置不同的日志级别,以便在生产中我可以简单地在配置中设置只有 4-5 个重要的核心命名空间,其日志记录方法调用 (MyLogger.LogInformation()) 将被发送到日志文件。
像下面这样的可能吗?因为 MyLogger 是记录的类。但是如果调用来自 MyProject.CartManager 命名空间,那么它应该根据示例中的以下配置自动记录。
请分享你的想法。
例如:
c# - Unit test for Serilog write to console
Application is in .net framework and using Serilog for logging.
Configuration
In Unit test how to verify that logger has the values which is expected to be?
Is there any way to read the values using any of Serilog api/methods?
asp.net-mvc - 有没有办法覆盖 Serilog 全局记录器的日志级别
我想要的场景是将全局日志级别设置为 Error。这是我在启动类中调用的配置代码:
但问题是我想在控制器中的一些操作方法中编写一些自定义信息日志,如下所示:
问题是由于在 startup.cs 类中定义的全局错误级别设置,Serilog不会将信息日志写入SQL 表。这个问题有没有解决方案(没有将全局日志级别设置为信息)?
elasticsearch - 缺少弹性服务器时发生异常
下面是 serilog 弹性搜索的代码。弹性服务运行时运行良好,但服务器不可用时失败
缺少弹性服务器时发生异常
Elasticsearch.Net.ElasticsearchClientException:'无法建立连接,因为目标机器主动拒绝它。调用:状态码未知来自:GET /_cat/nodes?h=v'
asp.net-core - Serilog - 如何停止请求生命周期日志并仅启用自定义信息日志
我正在使用 ASP.NET Core 3.1,我已经包含了 serilog“Serilog.AspNetCore”3.2.0 版的 nuget。
配置为记录到文件如下:
在我的代码中,我使用代码登录Log.Information("Starting up");
当我查看日志时,我得到了很多关于我真的不需要在日志中看到的请求的数据
例子:
2020-03-18 12:19:27.355 +05:30 [INF] 内容根路径:C:\R\Path\MyProject.Notification
2020-03-18 12:19:27.486 +05:30 [INF] 请求开始 HTTP/2.0 GET https://localhost:44360/swagger/index.html
2020-03-18 12:19:27.707 +05:30 [INF] 请求在 227.3113ms 200 text/html;charset=utf-8 中完成
2020-03-18 12:19:27.909 +05:30 [INF] 请求启动 HTTP/2.0 GET https://localhost:44360/swagger/v1/swagger.json
2020-03-18 12:19:28.064 +05:30 [INF] 请求在 154.5787 毫秒内完成 200 application/json;charset=utf-8
2020-03-18 12:19:41.221 +05:30 [INF] 请求开始 HTTP/2.0 GET https://localhost:44360/Client/Index
2020-03-18 12:19:41.238 +05:30 [INF] 授权成功。
我真的不需要所有这些日志,但我只想记录我使用内部Log.Information("log content")
控制器操作方法指定的日志。
我怎样才能做到这一点?