Documentation
¶
Overview ¶
Package ibento
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Log ¶
type Log struct {
// contains filtered or unexported fields
}
Log represents an readonly and append-only log of events
func Open ¶
Open opens a new event log.
Example ¶
dir, err := ioutil.TempDir("", "*")
if err != nil {
fmt.Println(err)
return
}
defer os.RemoveAll(dir)
log, err := Open(dir)
if err != nil {
fmt.Println(err)
return
}
defer log.Close() // don't forget to close when done
fmt.Println("opened")
Output: opened
Example (CustomOptions) ¶
logger, err := zap.NewDevelopment()
if err != nil {
fmt.Println(err)
return
}
dir, err := ioutil.TempDir("", "*")
if err != nil {
fmt.Println(err)
return
}
defer os.RemoveAll(dir)
log, err := Open(dir, WithLogger(logger))
if err != nil {
fmt.Println(err)
return
}
defer log.Close() // don't forget to close when done
fmt.Println("opened")
Output: opened
func (*Log) Append ¶
Append will add the given event to the end of a Log.
Example ¶
dir, err := ioutil.TempDir("", "*")
if err != nil {
fmt.Println(err)
return
}
defer os.RemoveAll(dir)
log, err := Open(dir)
if err != nil {
fmt.Println(err)
return
}
defer log.Close() // don't forget to close when done
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
ev := event.New()
ev.SetSource("example")
ev.SetID("1")
ev.SetType("example")
err = log.Append(ctx, ev)
fmt.Println(err)
Output: <nil>
func (*Log) Iterator ¶
Iterator initializes a new iterator over the event log.
Example ¶
dir, err := ioutil.TempDir("", "*")
if err != nil {
fmt.Println(err)
return
}
defer os.RemoveAll(dir)
eventlog, err := Open(dir)
if err != nil {
fmt.Println(err)
return
}
defer eventlog.Close() // don't forget to close when done
ev1 := event.New()
ev1.SetID("1234")
ev1.SetType("test")
ev1.SetSource("test")
err = eventlog.Append(context.Background(), ev1)
if err != nil {
fmt.Println(err)
return
}
ev2 := event.New()
ev2.SetID("4321")
ev2.SetType("test")
ev2.SetSource("test")
err = eventlog.Append(context.Background(), ev2)
if err != nil {
fmt.Println(err)
return
}
numOfEvents := 0
err = eventlog.
Iterator().
Consume(func(e *event.Event) error {
numOfEvents += 1
return nil
})
if err != nil {
fmt.Println(err)
return
}
fmt.Println(numOfEvents)
Output: 2
type Notification ¶
Notification represents that an event has been appended to the Log.
type Option ¶
type Option func(*logOptions)
Option is a type which helps override the default Log configuration.
type ValidationError ¶
type ValidationError struct {
Cause error
}
ValidationError represents that an invalid parameter was provided to a method or function.
func (ValidationError) Error ¶
func (e ValidationError) Error() string
Error implements the error interface.
Click to show internal directories.
Click to hide internal directories.