serilog 相关问题

Serilog为文件,控制台等提供诊断日志记录。它易于设置,具有干净的API,并且可以在最近的.NET平台之间移植。

将 Serilog LogContext 添加到每个日志调用

有没有一种方法可以将 LogContext 调用“注入”到项目中的所有 Serilog 日志调用中? 我想添加一个 ExecutionContext 属性,它只是一个在共享类中生成的十六进制字符串

回答 1 投票 0

带有 Azure 表存储的 Serilog .NET

我听说 Serilog 很棒,我想在我的 .NET Core API 中使用它。 由于 Azure Table Storage 的成本低,它是我首选的“数据库”。我看到 Serilog 有一个水槽

回答 1 投票 0

如何使用 Azure Functions v4 正确设置 Serilog?

我想在 Azure Function v4 (.net 6) 中使用 Serilog(日志应该发送到 Datadog)。为此,我安装了以下 nuget 包: 我想在 Azure Function v4 (.net 6) 中使用 Serilog(日志应该发送到 Datadog)。为此,我安装了以下 nuget 包: <PackageReference Include="Serilog" Version="2.10.0" /> <PackageReference Include="Serilog.Extensions.Logging" Version="3.1.0" /> <PackageReference Include="Serilog.Formatting.Compact" Version="1.1.0" /> <PackageReference Include="Serilog.Sinks.Console" Version="4.0.1" /> <PackageReference Include="Serilog.Sinks.Datadog.Logs" Version="0.3.5" /> 下面是Startup.cs类中的配置: public override void Configure(IFunctionsHostBuilder builder) { builder.Services.AddHttpClient(); //... adding services etc. Log.Logger = new LoggerConfiguration() .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) .MinimumLevel.Override("Worker", LogEventLevel.Warning) .MinimumLevel.Override("Host", LogEventLevel.Warning) .MinimumLevel.Override("System", LogEventLevel.Error) .MinimumLevel.Override("Function", LogEventLevel.Error) .MinimumLevel.Override("Azure.Storage.Blobs", LogEventLevel.Error) .MinimumLevel.Override("Azure.Core", LogEventLevel.Error) .Enrich.WithProperty("Application", "Comatic.KrediScan.AzureFunctions") .Enrich.FromLogContext() .WriteTo.DatadogLogs("XXXXXXXXXXX", configuration: new DatadogConfiguration() { Url = "https://http-intake.logs.datadoghq.eu" }, logLevel: LogEventLevel.Debug) .WriteTo.Console() .CreateLogger(); builder.Services.AddSingleton<ILoggerProvider>(sp => new SerilogLoggerProvider(Log.Logger, true)); builder.Services.AddLogging(lb => { //lb.ClearProviders(); //--> if used nothing works... lb.AddSerilog(Log.Logger, true); }); 基本上日志记录工作,但所有日志语句都写了两次(有几毫秒的差异,Datadog 和控制台)。 很明显我在配置上做了一些根本性的错误。我不使用 appsettings.json,Serilog 的配置只在代码中进行。我搜索了整个互联网并阅读了几乎所有关于 Serilog 和 Azure Functions 的文章。在 Stackoverflow 上,我几乎还阅读了所有关于它的问题并尝试了所有答案。不幸的是,到目前为止没有成功。 SO-问题例如: 将 Serilog 与 Azure 日志流结合使用 如何将 Serilog 与 Azure WebJobs 一起使用? Serilog enricher Dependency Injection with Azure Functions https://github.com/hgmauri/sample-azure-functions/blob/main/src/Sample.AzureFunctions.DotNet31/Startup.cs 是否有使用 Azure Functions v4 / .net 6 设置 Serilog 的示例? 非常感谢您的帮助! 迈克尔哈臣 知道了!在用 ILogger 替换所有 ILogger<T> 并删除线 builder.Services.AddSingleton<ILoggerProvider>(sp => new SerilogLoggerProvider(Log.Logger, true)); 后,一切都按预期工作。 对于那些因为无法使用 app insights sink 正确配置登录 azure 功能而来到这里的人,这对我有用: private static void ConfigureLogging(IServiceCollection services) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Information() .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) .MinimumLevel.Override("System", LogEventLevel.Warning) .MinimumLevel.Override("Worker", LogEventLevel.Warning) .MinimumLevel.Override("Host", LogEventLevel.Warning) .MinimumLevel.Override("Function", LogEventLevel.Warning) .MinimumLevel.Override("Azure", LogEventLevel.Warning) .MinimumLevel.Override("DurableTask", LogEventLevel.Warning) .Enrich.FromLogContext() .Enrich.WithExceptionDetails() .WriteTo.ApplicationInsights( TelemetryConfiguration.CreateDefault(), TelemetryConverter.Events, LogEventLevel.Information) .CreateLogger(); services.AddLogging(configure => configure.AddSerilog(Log.Logger)); } 在撰写本文时此处的示例似乎不起作用。 日志记录范围不会在输出中捕获。 Serilog 版本:2.11.0 Serilog.Sinks.ApplicationInsights 版本:4.0.0 未来的链接示例: [assembly: FunctionsStartup(typeof(MyFunctions.Startup))] namespace MyFunctions { public class Startup : FunctionsStartup { public override void Configure(IFunctionsHostBuilder builder) { builder.Services.AddSingleton<ILoggerProvider>((sp) => { Log.Logger = new LoggerConfiguration() .Enrich.FromLogContext() .WriteTo.ApplicationInsights(sp.GetRequiredService<TelemetryClient>(), TelemetryConverter.Traces) .CreateLogger(); return new SerilogLoggerProvider(Log.Logger, true); }); } } } 要设置Serilog.ILogger而不是ILogger<T>,您可以将Serilog添加为Singletonbuilder.AddSingleton<ILogger>(Log.Logger);而不是services.AddLogging(configure => configure.AddSerilog(Log.Logger));,然后在函数中从Serilog注入ILogger而不是ILoggerFactory并记录为_logger.Information("awesome log"); 我在 .net7 中运行隔离函数

回答 3 投票 0

如何对 Serilog 进行故障排除?

我已经开始在各种项目中使用 Serilog,并且几乎总是存在一些日志数据未通过的问题。 例如,现在我有一个简单的 C# .NET core 6 项目...

回答 1 投票 0

在不同类型的项目中捕获未处理的异常

我在 .NET Core 中创建了一个类库项目,并将其打包以用于其他应用程序。 这个类库的一部分关于记录未处理的异常。我想用 Serilog 记录异常。 这

回答 0 投票 0

如何使用 Serilog Sink Http Authentication Bearer 登录

我有一个控制台应用程序,我想使用 Serilog (v2.12.0) http 接收器 (v8.0.0) 登录到 Logtail,并为身份验证承载配置自定义 httpclient,如下所示: 使用 Microsoft.Extensions.

回答 1 投票 0

为什么我通过 ILogger 登录时,无论是否使用 Serilog,我的日志消息都是胡说八道?

我正在编写一个.NET 7 应用程序,我的最终目标是将JSON 日志输出到控制台。我可以使用 Microsoft 的 ILogger 组件来做到这一点,这似乎是非常惯用的,至少......

回答 0 投票 0

应用运行时看不到json文件的变化

我有一个 .NET 6 ASP.NET Core 应用程序。有一个带有 Serilog 配置的 serilog.json 文件。在运行时,如果你改变这个文件,Serilog 看不到变化,但是 reloadOnChange

回答 0 投票 0

来自多个服务器的 Serilog 文件接收器具有交错的消息

我在 10 个 Web 服务器上部署了一个 Web 应用程序。它们都是这样配置的(注意,下面的路径是共享网络路径。所以它们都指向同一个日志文件): “Serilog”...

回答 0 投票 0

不能使用 ElasticSearch IP 地址作为节点 URI(不信任服务器证书)

这是我在这里的第一篇文章,所以请多多包涵! 当前设置: -Elasticsearch 和 Kibana 托管在带有 docker 的 ubuntu 服务器上(因此 Elastic API URI 类似于 xxx.xxx.xxx.xxx:

回答 0 投票 0

为什么 Serilog 在我的应用程序启动崩溃时没有将日志发送到 Seq sink

我有一个 .NET 6 BackgroundService,我正试图将其部署在 Azure 容器实例上。实例一启动就崩溃,但没有日志转储到我的 Serilog 的 Seq 接收器中。我知道...

回答 2 投票 0

使用 Serilog 将 JSON 格式的数据写入 AWS Cloudwatch

我想将 API 请求数据记录到 serilog 以进行某些分析,但我无法正确设置格式。我在 Dot net Core 5 中使用 Serilog,我的记录器配置如下 记录器配置

回答 0 投票 0

如何防止Serilog自动记录每一个小步骤的信息?

我想为我的 .Net 5 Web Api 项目使用 Serilog。我安装了软件包 Serilog.AspNetCore v4.1.0 Serilog.Sinks.Console v4.0.0 并将 Program.cs 文件更改为 公开密封类程序...

回答 3 投票 0

命名占位符不应该是 Serilog 中的数值以及在 Serilog 中使用结构化日志记录 VS 字符串插值的优势?

为什么在Serilog中,命名占位符不应该是数值,但是数字占位符不会用Console.WriteLine产生警告。 例如: _log.LogInformation("一些数据 - {0} 和 data2:...

回答 0 投票 0

使用Serilog将程序结束时创建的日志文件通过电子邮件发送出去

我在C# Console应用程序中使用Serilog库来建立一个Scheduler,这个Scheduler会把每天的消息记录在一个日志文件中。文件名是用下面的代码动态创建的。Log.Logger = new ...

回答 1 投票 1

Serilog没有持续地写入数据库。

我正在使用下面的代码,每次运行代码时,我都能看到LogErrorToDatabase方法中的断点。然而有时我在数据库中看到ErrorGuid的日志条目,并 ...

回答 2 投票 0

ASP.NET Core中的Serilog DI,要注入哪个ILogger接口?

语境 我已经在我的ASP.NET Core应用程序中成功配置了Serilog,只剩下DI部分。问题 现在我有两个ILogger接口,一个是Serilog.ILogger,另一个是Microsoft...。

回答 2 投票 1

Serilog ILogger.ForContext在XUnit Mock中抛出NullReferenceException。

当我试图使用Mock对signalr组件进行单元测试时,遇到了一个问题。这里是问题发生的地方 _logger.LogInformation($"Registering a Station with id: {Id}" + $"与...

回答 1 投票 0

将Serilog与Microsoft.Extensions.Logging.ILogger一起使用。

我已经创建了一个.NET Core 3.1项目,使用Host、IoC容器和IServiceCollection,并使用Microsoft.Extensions的ILogger<>接口实现了到处的日志记录......。

回答 1 投票 0

在ASP.NET Core 3.1中使用配置中的ConnectionString

我正在使用推荐的方法来配置Serilog与ASP.NET Core。如何在Main方法中从配置中获取ConnectionString来配置SQL Server sink? public class Program { ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.