celluloid/celluloid — pull request #96 by grantr (2012-09-24 18:22:48+00:00)
Title: Firehose topic for IncidentLogger

IncidentLogger currently doesn't support the perfectly valid logging need to have every message logged instead of just errors.

This branch adds a firehose topic that gets every LogEvent above the configured log level. An example FirehoseConsumer is also included that just wraps a ::Logger instance.

This feature has the potential to cause serious slowdowns if the fanout notifier is not performant. I haven't done any benchmarks yet but someone probably should before the IncidentLogger is enabled by default.

Speaking of things that should happen before IncidentLogger is enabled: still no tests.

Also something that should happen before this goes out is a shutdown hierarchy. Occasionally the notifier gets shut down before the consumers. This is a bigger problem now because the logger tries to publish the shutdown message, but gets a DeadActorError which is logged to STDERR by the fallback logger.