Documentation ¶
Overview ¶
The filter package provides a way to filter events from handlers.
The filter itself is just a handler which sits in front of another handler. When the filter handler receives an event, it iterates through all its rules (filter functions), and if they all pass, the event is relayed to the next handler in the chain.
Example ¶
package main import ( "fmt" "os" "github.com/phemmer/sawmill" "github.com/phemmer/sawmill/event/formatter" "github.com/phemmer/sawmill/handler/filter" "github.com/phemmer/sawmill/handler/writer" ) func main() { logger := sawmill.NewLogger() defer logger.Stop() writer, err := writer.New(os.Stdout, formatter.SIMPLE_FORMAT) if err != nil { fmt.Println(err) os.Exit(1) } handler := filter.New(writer).LevelMin(sawmill.NoticeLevel) logger.AddHandler("stdout", handler) logger.Debug("This is a debug message") logger.Error("This is an error message") }
Output: This is an error message --
Index ¶
- type FilterFunc
- type FilterHandler
- func (filterHandler *FilterHandler) Dedup() *FilterHandler
- func (filterHandler *FilterHandler) Event(logEvent *event.Event) error
- func (filterHandler *FilterHandler) Filter(filterFuncs ...FilterFunc) *FilterHandler
- func (filterHandler *FilterHandler) LevelMax(levelMax event.Level) *FilterHandler
- func (filterHandler *FilterHandler) LevelMin(levelMin event.Level) *FilterHandler
- type Handler
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FilterFunc ¶
FilterFunc is the signature for a filter used by the handler. The function returns `true` to indicate the event should be allowed, and `false` to indicate it should be dropped.
type FilterHandler ¶
type FilterHandler struct {
// contains filtered or unexported fields
}
func New ¶
func New(nextHandler Handler, filterFuncs ...FilterFunc) *FilterHandler
New creates a new FilterHandler which relays events to the handler specified in `nextHandler`.
If any filterFuncs are provided, they are used as the initial filter list.
func (*FilterHandler) Dedup ¶
func (filterHandler *FilterHandler) Dedup() *FilterHandler
Dedup adds a canned filter to the handler which suppresses duplicate messages.
When an event is received that contains the same message & fields as a previous message, the message is not sent on to the next handler. Once a different message is received, the filter generates a summary message indicating how many duplicates were suppressed.
The return value is the handler itself. This is to allow chaining multiple operations together.
func (*FilterHandler) Event ¶
func (filterHandler *FilterHandler) Event(logEvent *event.Event) error
Event processes an event through the filters, relaying the event to the next handler if all the filters pass.
func (*FilterHandler) Filter ¶
func (filterHandler *FilterHandler) Filter(filterFuncs ...FilterFunc) *FilterHandler
Filter adds a check function to the filter.
The function is passed the event, and should return true if the event is allowed, and false otherwise.
The return value is the handler itself. This is to allow chaining multiple operations together.
func (*FilterHandler) LevelMax ¶
func (filterHandler *FilterHandler) LevelMax(levelMax event.Level) *FilterHandler
LevelMax adds a canned filter to the handler which rejects events with a level greater than the one specified.
The return value is the handler itself. This is to allow chaining multiple operations together.
func (*FilterHandler) LevelMin ¶
func (filterHandler *FilterHandler) LevelMin(levelMin event.Level) *FilterHandler
LevelMin adds a canned filter to the handler which rejects events with a level less than the one specified.
The return value is the handler itself. This is to allow chaining multiple operations together.