gpt4 book ai didi

c# - 使用 Serilog 的 Azure 日志分析已停止日志记录(MVC 核心)

转载 作者:行者123 更新时间:2023-12-03 00:04:31 26 4
gpt4 key购买 nike

我有一个非常简单的 MVC Core 2.2 应用程序,它利用 Serilog 和 serilog-sinks-azure-analytics ( https://github.com/saleem-mirza/serilog-sinks-azure-analytics ) 将应用程序日志通过管道传输到 Azure 日志分析工作区。 Program.cs 中的实现如下所示

public static void Main(string[] args)
{

var workspaceId = Configuration["AzureLogging:workspaceId"];
var authenticationId = Configuration["AzureLogging:authenticationId"];
var logName = Configuration["AzureLogging:logName"];

//Configure Serilog to add Azure Logging
Log.Logger = new LoggerConfiguration()
.WriteTo.AzureAnalytics(
workspaceId: workspaceId,
authenticationId: authenticationId,
logName: logName
)
.MinimumLevel.Information()
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
.MinimumLevel.Override("System", LogEventLevel.Warning)
.CreateLogger();

CreateWebHostBuilder(args).Build().Run();
}

它收集了一整天的日志,然后显然停止了,因为当我通过日志分析工作区查询过去几个小时时,它什么也没返回。如果我在过去 7 天运行查询,我会得到 350 条记录的计数,这很有趣。

sink 项目的文档指出,默认情况下 logBu​​fferSize 为 25,000 个条目,因此我似乎没有达到这个要求。

如果您能提供有关如何诊断日志位置或日志失败原因的建议,我将不胜感激。

提前致谢。

最佳答案

每个日志分析工作区的自定义字段数量限制为大约 500 个

转到 Azure 门户 > Log Analytics 工作区 > 高级设置 > 数据 -> 当前字段计数的自定义字段 并检查计数。

您可以使用 Serilog.Sinks.AzureAnalytics 。此接收器接受一个选项参数 flattenObject 来指示导出到 Azure 时是否应展平对象属性。将其设置为 false 将在 LogProperties 属性中保留复杂的对象结构。

更多详情,您可以引用这个issue

关于c# - 使用 Serilog 的 Azure 日志分析已停止日志记录(MVC 核心),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59363852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com