diff --git a/event.go b/event.go index 271a48c..4fb0e63 100644 --- a/event.go +++ b/event.go @@ -15,6 +15,58 @@ type Event struct { Data json.RawMessage `json:"data"` } +type ExtendedEvent interface { + GetID() uuid.UUID + GetTimestamp() time.Time + GetLevel() string + GetMessage() string + GetData() json.RawMessage + GetFile() string + GetLine() int +} + +type extendedEvent struct { + Event + File string `json:"file"` + Line int `json:"line"` +} + +func (e extendedEvent) GetID() uuid.UUID { + return e.ID +} + +func (e extendedEvent) GetTimestamp() time.Time { + return e.Timestamp +} + +func (e extendedEvent) GetLevel() string { + return e.Level +} + +func (e extendedEvent) GetMessage() string { + return e.Message +} + +func (e extendedEvent) GetData() json.RawMessage { + return e.Data +} + +func (e extendedEvent) GetFile() string { + return e.File +} + +func (e extendedEvent) GetLine() int { + return e.Line +} + +func NewExtendedEvent(level, message string, data json.RawMessage, file string, line int) ExtendedEvent { + return extendedEvent{ + Event: NewEvent(level, message, data), + File: file, + Line: line, + } +} + func NewEvent(level, message string, data json.RawMessage) Event { return Event{ ID: uuid.New(), diff --git a/simplelog.go b/simplelog.go index 94ed71c..0984764 100644 --- a/simplelog.go +++ b/simplelog.go @@ -3,6 +3,7 @@ package simplelog import ( "context" "log" + "runtime" "log/slog" "os"