2019-11-27 16:02:16 +00:00
|
|
|
// Package log provides debug logging
|
|
|
|
package log
|
|
|
|
|
|
|
|
import (
|
2019-11-27 17:31:35 +00:00
|
|
|
"time"
|
2019-11-27 16:02:16 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
2019-11-28 11:36:38 +00:00
|
|
|
// DefaultLog logger
|
|
|
|
DefaultLog = NewLog()
|
|
|
|
// DefaultLevel is default log level
|
|
|
|
DefaultLevel = LevelInfo
|
2019-11-27 16:02:16 +00:00
|
|
|
// prefix for all messages
|
|
|
|
prefix string
|
|
|
|
)
|
|
|
|
|
2019-11-27 17:31:35 +00:00
|
|
|
// Log is event log
|
|
|
|
type Log interface {
|
|
|
|
// Read reads log entries from the logger
|
2019-12-17 16:56:55 +00:00
|
|
|
Read(...ReadOption) ([]Record, error)
|
2019-12-01 13:15:10 +00:00
|
|
|
// Write writes records to log
|
2019-12-17 16:56:55 +00:00
|
|
|
Write(Record) error
|
2019-12-01 13:15:10 +00:00
|
|
|
// Stream log records
|
2019-12-17 16:56:55 +00:00
|
|
|
Stream() (Stream, error)
|
2019-11-27 16:02:16 +00:00
|
|
|
}
|
|
|
|
|
2019-11-27 17:31:35 +00:00
|
|
|
// Record is log record entry
|
|
|
|
type Record struct {
|
|
|
|
// Timestamp of logged event
|
|
|
|
Timestamp time.Time
|
|
|
|
// Value contains log entry
|
|
|
|
Value interface{}
|
|
|
|
// Metadata to enrich log record
|
|
|
|
Metadata map[string]string
|
|
|
|
}
|
|
|
|
|
2019-12-17 16:56:55 +00:00
|
|
|
type Stream interface {
|
|
|
|
Chan() <-chan Record
|
|
|
|
Stop() error
|
2019-11-27 16:02:16 +00:00
|
|
|
}
|