Throughout their lifetime, messages will transition between different states.
This has some noteworthy consequences:
Message producer has the capability of notifying a message consumer of Messages. Producers and consumers form a tree, where a consumer of one producer may itself be a producer for other consumers. Users are allowed to register their own custom consumers.
LogWatch is the ultimate producer, the root of the tree. Follower serves as its consumer and as a producer for its metrics or merged followers. Merged follower consumes a Follower and may pass Messages to its own metrics. However, metrics and expectations are the leaves of this tree.
Consumers can be stopped, after which they will refuse any new message from their producers and they will not pass them on to consumers of their own. In practice, when you stop a Follower, no more expectations will ever return and no metrics will ever trigger.
Whether or not a producer notifies its consumers of the Messages that it has been notified of, that is left to the discretion of the producer. By default, however, no producer provided by the Splitlog package will ever swallow a message.
Before a Message enters Splitlog, it needs to “pass through the gate.” Messages that don’t pass will not be stored, will never be assigned any of the states, and no consumer will ever be notified of their arrival. It would be as if they never existed.
Gating can be configured on the LogWatchBuilder and is the very first thing that happens when a line is read from the watched log.
——————————————-
Think you spotted a mistake in this document? A typo? Factual inaccuracy? Make an edit. Think of the legions of grateful users!