mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 16:32:26 -05:00 
			
		
		
		
	
		
			
	
	
		
			36 lines
		
	
	
	
		
			820 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
	
		
			820 B
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | 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 | ||
|  | } |