summaryrefslogtreecommitdiff
path: root/vendor/gopkg.in/mcuadros/go-syslog.v2/handler.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gopkg.in/mcuadros/go-syslog.v2/handler.go')
-rw-r--r--vendor/gopkg.in/mcuadros/go-syslog.v2/handler.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/gopkg.in/mcuadros/go-syslog.v2/handler.go b/vendor/gopkg.in/mcuadros/go-syslog.v2/handler.go
new file mode 100644
index 000000000..9914b3ea1
--- /dev/null
+++ b/vendor/gopkg.in/mcuadros/go-syslog.v2/handler.go
@@ -0,0 +1,35 @@
+package syslog
+
+import (
+ "gopkg.in/mcuadros/go-syslog.v2/format"
+)
+
+//The handler receive every syslog entry at Handle method
+type Handler interface {
+ Handle(format.LogParts, int64, error)
+}
+
+type LogPartsChannel chan format.LogParts
+
+//The ChannelHandler will send all the syslog entries into the given channel
+type ChannelHandler struct {
+ channel LogPartsChannel
+}
+
+//NewChannelHandler returns a new ChannelHandler
+func NewChannelHandler(channel LogPartsChannel) *ChannelHandler {
+ handler := new(ChannelHandler)
+ handler.SetChannel(channel)
+
+ return handler
+}
+
+//The channel to be used
+func (h *ChannelHandler) SetChannel(channel LogPartsChannel) {
+ h.channel = channel
+}
+
+//Syslog entry receiver
+func (h *ChannelHandler) Handle(logParts format.LogParts, messageLength int64, err error) {
+ h.channel <- logParts
+}