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

log4net模式和级别过滤器

  •  1
  • Aidan  · 技术社区  · 14 年前

    我想通过包含(阈值和模式)的过滤器来过滤log4net输出。因此,我只希望在级别为“错误”(或更高级别)时允许使用模式为“X”的日志,并且仅当级别为“信息”(或更高级别)时允许使用模式为“Y”的日志。我可以在一个附加器中这样做,还是需要两个附加器,每个附加器都有自己的模式过滤器和阈值?

    2 回复  |  直到 13 年前
        1
  •  1
  •   Community CDub    8 年前

    log4net允许您链接过滤器,但它只能作为“或”工作。我认为你也可以让它做一个“和”的操作,但不是你真正想要的。我会编写自己的过滤器来检查级别和模式是否匹配。然后链接此过滤器的两个实例,使其检查第一个条件和第二个条件(“或”操作)。不要忘记 DenyAllFilter 最后。

    我写了一个自定义过滤器 once ,这可能有助于创建筛选器。

    两个附加器可能是一个解决方法,但是如果您想要记录到一个文件,您就有了可以解决的锁定问题(性能损失)。

        2
  •  0
  •   Community CDub    8 年前

    你应该看看那些要求和或过滤的人: Log4Net filters "OR"

    据我所知,还没有实现什么,但是如果您真的需要它,您可以通过自己对filterskeleton进行子类化来实现这个技巧。