Serilog为文件,控制台等提供诊断日志记录。它易于设置,具有干净的API,并且可以在最近的.NET平台之间移植。
无法使用 Serilog 将日志写入控制器中的 Azure Application Insights
我有一个 .net6 Web API,我正在尝试将日志写入 Azure 应用程序见解。当我尝试在 Program.cs 中编写时它起作用了。但是当我试图在 Controller 动作中写入时它并没有写入......
日志未写入 Azure Application Insights
我正在使用 3.4.0 版本的 Serilog.Settings.Configuration 和 Serilog.Sinks.ApplicationInsights 版本:4.0.0 下面是我的 appsettings.json。 “系列”:{ “使用”: [ ...
如何通过 Serilog 限制 EF Core 命令文本记录
使用 Serilog 进行 EFCore 日志记录时如何限制 commandText 大小? (和 Serilog MS 日志扩展。)
WCF 服务器记录客户端操作(Devexpress、XPO、serilog)
我有 XPO 的 WCF 服务,我想建立一个统一的日志系统来记录所有事件。我们正在使用工作单元的会话实例,我们正在使用 .NET 和 Winform。日志数据示例:服务...
如何在Serilog中配置一个程序的多个实例写入不同的日志文件?
我有一个 Core 7 应用程序,它使用 Serilog 和 Serilog.Sink.Files 写入滚动日志文件。我的问题是我想运行这个应用程序的两个实例,我怎样才能让这两个实例...
我对 API 版本控制还很陌生。我正在使用 ASP.NET 6.0 和 Serilog 写入日志文件。 现在我已经实现了版本控制,我想让应用程序的 v1.0 写入“Logs/V1.0/logfile....
如何配置 serilog 以在非 ASP Core 项目的类库中使用?
我有一个库,我想在其中使用日志记录,因此在构造函数中,我传递了一个 Microsoft.Extensions.Logging.ILogger 参数。 我的库的使用者不是 ASP Core 项目,我...
Serilog 中是否有我可以(以编程方式)检查当前配置的属性/方法? (水槽,最低水平) 例如如果有这个配置: Log.Logger = 新的 LoggerConfiguration() ...
如何在代码中将 Azure 存储连接字符串传递给 Serilog,同时从 appSettings.json 读取其他设置?
我的 appsettings.json 看起来像这样: “系列”:{ “使用”:[“Serilog.Sinks.Console”,“Serilog.Sinks.AzureBlobStorage”], “最低级别”:{...
从 Serilog appsettings.json 禁用 Http 请求跟踪
我正在 Azure 上开发 .netcore6 Web 应用程序,使用 Serilog 和 Serilog AzureInsights Sink 作为核心调试机制。我想禁用默认情况下发送到 Azure Insights 的 HttpRequest 日志记录...
Serilog 通过 ASP.NET Web API 将日志从 Unity(或任何应用程序)转发到 Elasticsearch 实例
我想将日志从 Unity 应用程序发送到 Elasticsearch。然而,Serilog.Sinks.Elasticsearch 在统一内部运行似乎很复杂(如果可能的话)。可能的解决方案是拥有一个 ASP.NET We...
我正在尝试使用 Serilog 记录一些指标,以监控后台进程的运行情况。一些指标是 TimeSpans,它跟踪运行的总时间、每次迭代的时间、e...
Serilog 如何将 SignalR 的跟踪日志写入日志文件?
我有以下代码来启用 SignalR 调用的记录跟踪日志。但是,代码不起作用? 使用 Microsoft.Extensions.Logging; 使用 SeriLog; var seriLoglogger = new LoggerConfigurat...
我决定将 AWS cloudwatch 登录添加到我的应用程序中,但似乎有问题。有很多网站描述了如何将 Serilog 接收器添加到 AWS 云手表,我使用了 2 种不同的
使用.NET 6 SeriLog,是否可以登录到Cassandra DB?我知道有一个 MSSQL Server Sink,但没有找到使用 Cassandra 的方法。 var logger = new LoggerConfiguration()...
怎么了? 执行请求时发生未处理的异常。 System.InvalidOperationException:记录器已被冻结。 在 Serilog.Extensions.Hosting.ReloadableLogger.
我是 graylog 的新手。我无法登录 graylog。当我搜索消息时,我寻找 source:xxx-yyy 或只是一个关键字 test9999,寻找所有最新的日志,我的消息不在那里。什么...
将 Serilog LogContext 添加到每个日志调用
有没有一种方法可以将 LogContext 调用“注入”到项目中的所有 Serilog 日志调用中? 我想添加一个 ExecutionContext 属性,它只是一个在共享类中生成的十六进制字符串
我听说 Serilog 很棒,我想在我的 .NET Core API 中使用它。 由于 Azure Table Storage 的成本低,它是我首选的“数据库”。我看到 Serilog 有一个水槽
如何使用 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 中运行隔离函数