代码之家  ›  专栏  ›  技术社区  ›  sbi

正在寻找一个框架,用于在.NET中的重分布和并行系统中记录任意对象[关闭]

  •  -1
  • sbi  · 技术社区  · 15 年前

    (注意:我看到了一些关于.NET日志框架的问题,但没有看到任何类似于我们要求的问题。因此,请不要将此项作为副本关闭。)

    我们需要一个用于高度分布式和并行.NET应用程序的日志框架,它具有以下功能:

    • 它必须是线程安全的,因为许多线程将生成日志消息。
    • 每个日志消息都需要有一个时间戳。如果框架自动添加这个,这将使它更容易。
    • 除了时间戳之外,必须至少有一个严重性/详细性或类似于附加到日志消息的内容,以便可以通过它过滤它们。更多(正交的)预定义参数(消息源、预期的访问群体、消息类型、任何…)将是很好的选择。
    • 不过,我们还是需要添加自己的参数。它们被当作一级框架公民对待的越多(可以像对待预先定义的东西那样对待它们),效果就越好。
    • 框架应该能够根据至少预先定义的参数过滤消息。我们需要在运行时随时更改过滤。
    • 我们需要把 物体 通过这个,而不是字符串。字符串可以在末尾从这些对象生成,但日志消息参数不能从一开始就放在一个平面字符串中。
    • 由于客户将看到一些日志记录,因此我们可能需要将它们国际化。(考虑到我们想要记录对象,而不是字符串,这不会太难,但支持越多越好。)
    • 我们需要能够将过滤后留下的日志消息写入到文件中,并重新读取这些文件。如果框架具有流式输出和流式输入的能力,我们就不必自己实现这一点。
    • 每个日志消息可能同时发送到多个目标(文件、窗口、远程计算机)。
    • 如果必须通过网络发送日志消息,则可能需要在专用线程中这样做。
    • 这东西将在C使用。

    好吧,所以我们认为几乎不可能找到一个可以实现这一切的东西。这些要求太多了,可能也太多不常见的要求。

    但是有没有什么东西可以作为基础并建立我们的东西呢?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Vinay Sajip    15 年前

    阿法克 log4net 几乎所有这些。它主要基于过滤的冗长级别,尽管您可以使用 Filters 为了使用替代标准进行过滤,他们不一定是“一流公民”。

    还有,“重新读取文件“—我想您不希望日志框架直接支持这一点。毕竟,文件就是文件。