Documentation ¶
Overview ¶
Package streamlog provides a non-blocking message broadcaster.
Index ¶
- type StreamLogger
- func (logger *StreamLogger) Name() string
- func (logger *StreamLogger) Send(message interface{})
- func (logger *StreamLogger) ServeLogs(url string, messageFmt func(url.Values, interface{}) string)
- func (logger *StreamLogger) Subscribe(name string) chan interface{}
- func (logger *StreamLogger) Unsubscribe(ch chan interface{})
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type StreamLogger ¶
type StreamLogger struct {
// contains filtered or unexported fields
}
StreamLogger is a non-blocking broadcaster of messages. Subscribers can use channels or HTTP.
func New ¶
func New(name string, size int) *StreamLogger
New returns a new StreamLogger with a buffer that can contain size messages. Any messages sent to it will be available at url.
func (*StreamLogger) Name ¶
func (logger *StreamLogger) Name() string
Name returns the name of StreamLogger.
func (*StreamLogger) Send ¶
func (logger *StreamLogger) Send(message interface{})
Send sends message to all the writers subscribed to logger. Calling Send does not block.
func (*StreamLogger) ServeLogs ¶
func (logger *StreamLogger) ServeLogs(url string, messageFmt func(url.Values, interface{}) string)
ServeLogs registers the URL on which messages will be broadcast. It is safe to register multiple URLs for the same StreamLogger.
func (*StreamLogger) Subscribe ¶
func (logger *StreamLogger) Subscribe(name string) chan interface{}
Subscribe returns a channel which can be used to listen for messages.
func (*StreamLogger) Unsubscribe ¶
func (logger *StreamLogger) Unsubscribe(ch chan interface{})
Unsubscribe removes the channel from the subscription.