Log4net:记录唯一消息

时间:2013-12-19 15:37:23

标签: log4net-configuration

我想在程序运行时只记录一些消息,或者能够“解锁”“唯一”消息,以便再次记录它。

当然,这可以通过代码跟踪“唯一”消息并仅调用一次log方法来完成,但我想知道是否可以通过一些配置技巧来实现。

在伪代码中:

DO
  i = i++
  log.info("this should be unique")
  log.info("this can be repeated")
LOOP WHILE i < 10

unlock("this should be unique")
log.info("this should be unique")
log.info("this can be repeated")

之后我会在我的日志上看到“这应该是唯一的”2次。

1 个答案:

答案 0 :(得分:1)

other question让我也考虑过这个。应该可以创建一个系统,通过使用任何缓冲appender和自定义ITriggeringEventEvaluator来记录任何消息一次(在重置之前)。

将缓冲区大小设置为0,将Evaluator设置为自定义缓冲区大小。在自定义评估程序中,跟踪经过IsTriggeringEvent方法的所有邮件,并过滤掉已经处理过的邮件。

可以配置要过滤的消息,但是你想要这样做(配置文件,数据库等),以及如何通过评估器再次记录它们(过滤超时,显式重置等)代码。