首页 > 解决方案 > 如何拆分包含许多属性的大型请求对象,其中一个是巨大的值列表

问题描述

直接说对不起。我有点新。

我有一个包含几个属性的对象,其中一个属性本身就是一个列表。现在,我们不知道输入负载中的值列表有多大(可能是 1000,也可能是 100,000)。我们在处理之前记录此请求有效负载。

我们用_logger.Verbose ("Some String...", {object});

当我们记录时,日志文件(我们使用 Serilog)以 JSON 格式将其保存为具有巨大值的记事本文件。

现在,当输入太大时,记录器会尝试记录但由于有效负载大而失败并重试多次。

我正在寻找一种方法来拆分或做一些循环和拆分和存储或其他东西。我不知道如何在 C# 代码中做。我尝试谷歌搜索并研究了很多但徒劳无功。我找到了 Lambda 的 SKIP 和 TASK 方法,但不确定如何使用。

下面的代码:在这种情况下,想象一下,“模型”就像 1000,或者 100,1000 它可以是任何东西。我只是在 C# 中寻找一个循环逻辑来划分一个像样的数字和进程。

public class Make
{
    public int ID { get; set;}
    public string Name { get; set;}
    public string Category { get; set;}
    public List<Model> Models { get;set;}
}

public class Model
{
    public string Name { get; set;}
    public string County { get; set;}
    public string Submodel { get; set;}
}

public ProcessCars ( Make object)
{
    _logger.Verbose ("Some String...", {object});`
    // Processing///
    //.....//
}

标签: c#.netlogging.net-coreserilog

解决方案


我了解您的目的是查看或调试列表的值。

如果我是你,我会问自己几个问题

我需要写下所有的值吗?为什么我不能在登录之前先过滤?
当您可以登录到数据库时,写入文本文件的目的是什么?Serilog 支持数据库日志记录。
将大值记录到文本文件是否是最佳实践?


推荐阅读