simplelog/simplelog.go

137 lines
2.6 KiB
Go
Raw Permalink Normal View History

package simplelog
import (
"context"
2024-06-10 09:39:01 +00:00
"encoding/json"
"log"
"log/slog"
"os"
2024-06-10 09:39:01 +00:00
"time"
"github.com/google/uuid"
"github.com/mattn/go-isatty"
)
var (
webhookURL = os.Getenv("LOGGER_WEBHOOK_URL")
)
var ourCustomLogger *slog.Logger
var ourCustomHandler slog.Handler
func init() {
aider: Rename CustomHandler to MultiplexHandler. # Aider chat conversation: USER: rename CustomHandler to MultiplexHandler ASSISTANT: Here are the necessary changes to rename `CustomHandler` to `MultiplexHandler`: simplelog.go ```go <<<<<<< SEARCH ourCustomHandler = NewCustomHandler() ======= ourCustomHandler = NewMultiplexHandler() >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH type CustomHandler struct { ======= type MultiplexHandler struct { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func NewCustomHandler() slog.Handler { cl := &CustomHandler{} ======= func NewMultiplexHandler() slog.Handler { cl := &MultiplexHandler{} >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Handle(ctx context.Context, record slog.Record) error { ======= func (cl *MultiplexHandler) Handle(ctx context.Context, record slog.Record) error { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Enabled(ctx context.Context, level slog.Level) bool { ======= func (cl *MultiplexHandler) Enabled(ctx context.Context, level slog.Level) bool { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &CustomHandler{handlers: newHandlers} } func (cl *CustomHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &CustomHandler{handlers: newHandlers} ======= func (cl *MultiplexHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &MultiplexHandler{handlers: newHandlers} } func (cl *MultiplexHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &MultiplexHandler{handlers: newHandlers} >>>>>>> REPLACE ```
2024-05-14 12:26:56 +00:00
ourCustomHandler = NewMultiplexHandler()
ourCustomLogger = slog.New(ourCustomHandler)
slog.SetDefault(ourCustomLogger)
}
aider: Rename CustomHandler to MultiplexHandler. # Aider chat conversation: USER: rename CustomHandler to MultiplexHandler ASSISTANT: Here are the necessary changes to rename `CustomHandler` to `MultiplexHandler`: simplelog.go ```go <<<<<<< SEARCH ourCustomHandler = NewCustomHandler() ======= ourCustomHandler = NewMultiplexHandler() >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH type CustomHandler struct { ======= type MultiplexHandler struct { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func NewCustomHandler() slog.Handler { cl := &CustomHandler{} ======= func NewMultiplexHandler() slog.Handler { cl := &MultiplexHandler{} >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Handle(ctx context.Context, record slog.Record) error { ======= func (cl *MultiplexHandler) Handle(ctx context.Context, record slog.Record) error { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Enabled(ctx context.Context, level slog.Level) bool { ======= func (cl *MultiplexHandler) Enabled(ctx context.Context, level slog.Level) bool { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &CustomHandler{handlers: newHandlers} } func (cl *CustomHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &CustomHandler{handlers: newHandlers} ======= func (cl *MultiplexHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &MultiplexHandler{handlers: newHandlers} } func (cl *MultiplexHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &MultiplexHandler{handlers: newHandlers} >>>>>>> REPLACE ```
2024-05-14 12:26:56 +00:00
type MultiplexHandler struct {
handlers []ExtendedHandler
}
aider: Rename CustomHandler to MultiplexHandler. # Aider chat conversation: USER: rename CustomHandler to MultiplexHandler ASSISTANT: Here are the necessary changes to rename `CustomHandler` to `MultiplexHandler`: simplelog.go ```go <<<<<<< SEARCH ourCustomHandler = NewCustomHandler() ======= ourCustomHandler = NewMultiplexHandler() >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH type CustomHandler struct { ======= type MultiplexHandler struct { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func NewCustomHandler() slog.Handler { cl := &CustomHandler{} ======= func NewMultiplexHandler() slog.Handler { cl := &MultiplexHandler{} >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Handle(ctx context.Context, record slog.Record) error { ======= func (cl *MultiplexHandler) Handle(ctx context.Context, record slog.Record) error { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Enabled(ctx context.Context, level slog.Level) bool { ======= func (cl *MultiplexHandler) Enabled(ctx context.Context, level slog.Level) bool { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &CustomHandler{handlers: newHandlers} } func (cl *CustomHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &CustomHandler{handlers: newHandlers} ======= func (cl *MultiplexHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &MultiplexHandler{handlers: newHandlers} } func (cl *MultiplexHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &MultiplexHandler{handlers: newHandlers} >>>>>>> REPLACE ```
2024-05-14 12:26:56 +00:00
func NewMultiplexHandler() slog.Handler {
cl := &MultiplexHandler{}
if isatty.IsTerminal(os.Stdout.Fd()) {
cl.handlers = append(cl.handlers, NewConsoleHandler())
} else {
cl.handlers = append(cl.handlers, NewJSONHandler())
}
if webhookURL != "" {
handler, err := NewWebhookHandler(webhookURL)
if err != nil {
log.Fatalf("Failed to initialize Webhook handler: %v", err)
}
cl.handlers = append(cl.handlers, handler)
}
return cl
}
func (cl *MultiplexHandler) Handle(
ctx context.Context,
record slog.Record,
) error {
for _, handler := range cl.handlers {
if err := handler.Handle(ctx, record); err != nil {
return err
}
}
return nil
}
func (cl *MultiplexHandler) Enabled(
ctx context.Context,
level slog.Level,
) bool {
// send us all events
return true
}
aider: Rename CustomHandler to MultiplexHandler. # Aider chat conversation: USER: rename CustomHandler to MultiplexHandler ASSISTANT: Here are the necessary changes to rename `CustomHandler` to `MultiplexHandler`: simplelog.go ```go <<<<<<< SEARCH ourCustomHandler = NewCustomHandler() ======= ourCustomHandler = NewMultiplexHandler() >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH type CustomHandler struct { ======= type MultiplexHandler struct { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func NewCustomHandler() slog.Handler { cl := &CustomHandler{} ======= func NewMultiplexHandler() slog.Handler { cl := &MultiplexHandler{} >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Handle(ctx context.Context, record slog.Record) error { ======= func (cl *MultiplexHandler) Handle(ctx context.Context, record slog.Record) error { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Enabled(ctx context.Context, level slog.Level) bool { ======= func (cl *MultiplexHandler) Enabled(ctx context.Context, level slog.Level) bool { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &CustomHandler{handlers: newHandlers} } func (cl *CustomHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &CustomHandler{handlers: newHandlers} ======= func (cl *MultiplexHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &MultiplexHandler{handlers: newHandlers} } func (cl *MultiplexHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &MultiplexHandler{handlers: newHandlers} >>>>>>> REPLACE ```
2024-05-14 12:26:56 +00:00
func (cl *MultiplexHandler) WithAttrs(attrs []slog.Attr) slog.Handler {
newHandlers := make([]ExtendedHandler, len(cl.handlers))
for i, handler := range cl.handlers {
newHandlers[i] = handler.WithAttrs(attrs)
}
aider: Rename CustomHandler to MultiplexHandler. # Aider chat conversation: USER: rename CustomHandler to MultiplexHandler ASSISTANT: Here are the necessary changes to rename `CustomHandler` to `MultiplexHandler`: simplelog.go ```go <<<<<<< SEARCH ourCustomHandler = NewCustomHandler() ======= ourCustomHandler = NewMultiplexHandler() >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH type CustomHandler struct { ======= type MultiplexHandler struct { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func NewCustomHandler() slog.Handler { cl := &CustomHandler{} ======= func NewMultiplexHandler() slog.Handler { cl := &MultiplexHandler{} >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Handle(ctx context.Context, record slog.Record) error { ======= func (cl *MultiplexHandler) Handle(ctx context.Context, record slog.Record) error { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Enabled(ctx context.Context, level slog.Level) bool { ======= func (cl *MultiplexHandler) Enabled(ctx context.Context, level slog.Level) bool { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &CustomHandler{handlers: newHandlers} } func (cl *CustomHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &CustomHandler{handlers: newHandlers} ======= func (cl *MultiplexHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &MultiplexHandler{handlers: newHandlers} } func (cl *MultiplexHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &MultiplexHandler{handlers: newHandlers} >>>>>>> REPLACE ```
2024-05-14 12:26:56 +00:00
return &MultiplexHandler{handlers: newHandlers}
}
aider: Rename CustomHandler to MultiplexHandler. # Aider chat conversation: USER: rename CustomHandler to MultiplexHandler ASSISTANT: Here are the necessary changes to rename `CustomHandler` to `MultiplexHandler`: simplelog.go ```go <<<<<<< SEARCH ourCustomHandler = NewCustomHandler() ======= ourCustomHandler = NewMultiplexHandler() >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH type CustomHandler struct { ======= type MultiplexHandler struct { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func NewCustomHandler() slog.Handler { cl := &CustomHandler{} ======= func NewMultiplexHandler() slog.Handler { cl := &MultiplexHandler{} >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Handle(ctx context.Context, record slog.Record) error { ======= func (cl *MultiplexHandler) Handle(ctx context.Context, record slog.Record) error { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Enabled(ctx context.Context, level slog.Level) bool { ======= func (cl *MultiplexHandler) Enabled(ctx context.Context, level slog.Level) bool { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &CustomHandler{handlers: newHandlers} } func (cl *CustomHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &CustomHandler{handlers: newHandlers} ======= func (cl *MultiplexHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &MultiplexHandler{handlers: newHandlers} } func (cl *MultiplexHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &MultiplexHandler{handlers: newHandlers} >>>>>>> REPLACE ```
2024-05-14 12:26:56 +00:00
func (cl *MultiplexHandler) WithGroup(name string) slog.Handler {
newHandlers := make([]ExtendedHandler, len(cl.handlers))
for i, handler := range cl.handlers {
newHandlers[i] = handler.WithGroup(name)
}
aider: Rename CustomHandler to MultiplexHandler. # Aider chat conversation: USER: rename CustomHandler to MultiplexHandler ASSISTANT: Here are the necessary changes to rename `CustomHandler` to `MultiplexHandler`: simplelog.go ```go <<<<<<< SEARCH ourCustomHandler = NewCustomHandler() ======= ourCustomHandler = NewMultiplexHandler() >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH type CustomHandler struct { ======= type MultiplexHandler struct { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func NewCustomHandler() slog.Handler { cl := &CustomHandler{} ======= func NewMultiplexHandler() slog.Handler { cl := &MultiplexHandler{} >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Handle(ctx context.Context, record slog.Record) error { ======= func (cl *MultiplexHandler) Handle(ctx context.Context, record slog.Record) error { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) Enabled(ctx context.Context, level slog.Level) bool { ======= func (cl *MultiplexHandler) Enabled(ctx context.Context, level slog.Level) bool { >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH func (cl *CustomHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &CustomHandler{handlers: newHandlers} } func (cl *CustomHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &CustomHandler{handlers: newHandlers} ======= func (cl *MultiplexHandler) WithAttrs(attrs []slog.Attr) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithAttrs(attrs) } return &MultiplexHandler{handlers: newHandlers} } func (cl *MultiplexHandler) WithGroup(name string) slog.Handler { newHandlers := make([]ExtendedHandler, len(cl.handlers)) for i, handler := range cl.handlers { newHandlers[i] = handler.WithGroup(name) } return &MultiplexHandler{handlers: newHandlers} >>>>>>> REPLACE ```
2024-05-14 12:26:56 +00:00
return &MultiplexHandler{handlers: newHandlers}
}
2024-06-10 09:39:01 +00:00
aider: Moved the `ExtendedEvent` type and interface to `simplelog.go`. # Aider chat conversation: USER: the extendedevent type and interface should be in simplelog.go not the relp_handler.go because it's general to the simplelog package and not specific to the relp extendedhandler. ASSISTANT: To move the `ExtendedEvent` type and interface to `simplelog.go`, we need to: 1. Remove the `ExtendedEvent` type and interface from `event.go`. 2. Add the `ExtendedEvent` type and interface to `simplelog.go`. Here are the *SEARCH/REPLACE* blocks: event.go ```go <<<<<<< SEARCH 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, } } ======= >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH ======= 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, } } >>>>>>> REPLACE ```
2024-05-14 12:22:26 +00:00
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(baseEvent Event, file string, line int) ExtendedEvent {
aider: Moved the `ExtendedEvent` type and interface to `simplelog.go`. # Aider chat conversation: USER: the extendedevent type and interface should be in simplelog.go not the relp_handler.go because it's general to the simplelog package and not specific to the relp extendedhandler. ASSISTANT: To move the `ExtendedEvent` type and interface to `simplelog.go`, we need to: 1. Remove the `ExtendedEvent` type and interface from `event.go`. 2. Add the `ExtendedEvent` type and interface to `simplelog.go`. Here are the *SEARCH/REPLACE* blocks: event.go ```go <<<<<<< SEARCH 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, } } ======= >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH ======= 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, } } >>>>>>> REPLACE ```
2024-05-14 12:22:26 +00:00
return extendedEvent{
Event: baseEvent,
aider: Moved the `ExtendedEvent` type and interface to `simplelog.go`. # Aider chat conversation: USER: the extendedevent type and interface should be in simplelog.go not the relp_handler.go because it's general to the simplelog package and not specific to the relp extendedhandler. ASSISTANT: To move the `ExtendedEvent` type and interface to `simplelog.go`, we need to: 1. Remove the `ExtendedEvent` type and interface from `event.go`. 2. Add the `ExtendedEvent` type and interface to `simplelog.go`. Here are the *SEARCH/REPLACE* blocks: event.go ```go <<<<<<< SEARCH 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, } } ======= >>>>>>> REPLACE ``` simplelog.go ```go <<<<<<< SEARCH ======= 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, } } >>>>>>> REPLACE ```
2024-05-14 12:22:26 +00:00
File: file,
Line: line,
}
}