zrepl/logger/logger_test.go
2017-09-24 00:57:52 +02:00

48 lines
824 B
Go

package logger_test
import (
"context"
"fmt"
"github.com/kr/pretty"
"github.com/zrepl/zrepl/logger"
"testing"
"time"
)
type TestOutlet struct {
Record []logger.Entry
}
func (o *TestOutlet) WriteEntry(ctx context.Context, entry logger.Entry) error {
o.Record = append(o.Record, entry)
return nil
}
func NewTestOutlet() *TestOutlet {
return &TestOutlet{make([]logger.Entry, 0)}
}
func TestLogger_Basic(t *testing.T) {
outlet_arr := []logger.Outlet{
NewTestOutlet(),
NewTestOutlet(),
}
outlets := logger.NewOutlets()
for _, o := range outlet_arr {
outlets.Add(o, logger.Debug)
}
l := logger.NewLogger(outlets, 1*time.Second)
l.Info("foobar")
l.WithField("fieldname", "fieldval").Info("log with field")
l.WithError(fmt.Errorf("fooerror")).Error("error")
t.Log(pretty.Sprint(outlet_arr))
}