Я не знаю ни одного, но расширить Logger, чтобы создать свой собственный, не так уж сложно. По сути, он реализует кеширование для вашей регистрации, но вместо того, чтобы извлекать его из кеша и возвращать его, как в обычном приложении, вы отменяете его, когда оно кэшируется. Стратегия реализации и истечения срока действия этого кэша журнала оставлена читателю в качестве упражнения.
что-то вроде:
class IdealLogger < Logger
def info(event = nil, progname = nil, &block)
super(progname, &block) unless event_is_cached(event)
end
# define debug, warn, error, fatal, and unknown the same way, override others
# as you wish.
end