aider: Update log handlers and CustomLogger to match the slog.Handler interface.
# Aider chat conversation: USER: ../custom_logger.go:21:7: undefined: slog.SetDefaultLogger ASSISTANT: The error message indicates that the `slog.SetDefaultLogger` function is not defined. This could be due to the `slog` package not having a function named `SetDefaultLogger`. If you're trying to set the default logger for the `log` package, you should use `log.SetOutput` function. Here is the *SEARCH/REPLACE block* to replace `slog.SetDefaultLogger` with `log.SetOutput` in `custom_logger.go`: custom_logger.go ```go <<<<<<< SEARCH ^C KeyboardInterrupt USER: update our log handlers to match the slog.Handler interface. then update our customlogger to also match the slog.Handler interface. ASSISTANT: To update the log handlers and the CustomLogger to match the `slog.Handler` interface, we need to modify the `console_handler.go`, `json_handler.go`, `relp_handler.go`, `webhook_handler.go`, and `custom_logger.go` files. Here are the *SEARCH/REPLACE* blocks: console_handler.go ```go <<<<<<< SEARCH func (c *ConsoleHandler) Log(event Event) error { ======= func (c *ConsoleHandler) Log(level slog.Level, message string, data ...slog.Field) error { >>>>>>> REPLACE ``` json_handler.go ```go <<<<<<< SEARCH func (j *JSONHandler) Log(event Event) error { ======= func (j *JSONHandler) Log(level slog.Level, message string, data ...slog.Field) error { >>>>>>> REPLACE ``` relp_handler.go ```go <<<<<<< SEARCH func (r *RELPHandler) Log(event Event) error { ======= func (r *RELPHandler) Log(level slog.Level, message string, data ...slog.Field) error { >>>>>>> REPLACE ``` webhook_handler.go ```go <<<<<<< SEARCH func (w *WebhookHandler) Log(event Event) error { ======= func (w *WebhookHandler) Log(level slog.Level, message string, data ...slog.Field) error { >>>>>>> REPLACE ``` custom_logger.go ```go <<<<<<< SEARCH type CustomLogger struct { handlers []Handler } ======= type CustomLogger struct { handlers []slog.Handler } func (cl *CustomLogger) Log(level slog.Level, message string, data ...slog.Field) error { for _, handler := range cl.handlers { if err := handler.Log(level, message, data...); err != nil { return err } } return nil } >>>>>>> REPLACE ```
This commit is contained in:
parent
f8bd3147a4
commit
f964a0d2e4
@ -10,7 +10,7 @@ func NewConsoleHandler() *ConsoleHandler {
|
|||||||
return &ConsoleHandler{}
|
return &ConsoleHandler{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ConsoleHandler) Log(event Event) error {
|
func (c *ConsoleHandler) Log(level slog.Level, message string, data ...slog.Field) error {
|
||||||
color.New(color.FgBlue).PrintfFunc()("%s: %s\n", event.Level, event.Message)
|
color.New(color.FgBlue).PrintfFunc()("%s: %s\n", event.Level, event.Message)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,16 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type CustomLogger struct {
|
type CustomLogger struct {
|
||||||
handlers []Handler
|
handlers []slog.Handler
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cl *CustomLogger) Log(level slog.Level, message string, data ...slog.Field) error {
|
||||||
|
for _, handler := range cl.handlers {
|
||||||
|
if err := handler.Log(level, message, data...); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var ourCustomLogger *slog.Logger
|
var ourCustomLogger *slog.Logger
|
||||||
|
@ -11,7 +11,7 @@ func NewJSONHandler() *JSONHandler {
|
|||||||
return &JSONHandler{}
|
return &JSONHandler{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (j *JSONHandler) Log(event Event) error {
|
func (j *JSONHandler) Log(level slog.Level, message string, data ...slog.Field) error {
|
||||||
jsonData, _ := json.Marshal(event)
|
jsonData, _ := json.Marshal(event)
|
||||||
log.Println(string(jsonData))
|
log.Println(string(jsonData))
|
||||||
return nil
|
return nil
|
||||||
|
@ -114,7 +114,7 @@ func (r *RELPHandler) Startup() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RELPHandler) Log(event Event) error {
|
func (r *RELPHandler) Log(level slog.Level, message string, data ...slog.Field) error {
|
||||||
select {
|
select {
|
||||||
case r.ch <- event:
|
case r.ch <- event:
|
||||||
return nil // Successfully sent event to channel
|
return nil // Successfully sent event to channel
|
||||||
|
@ -19,7 +19,7 @@ func NewWebhookHandler(webhookURL string) (*WebhookHandler, error) {
|
|||||||
return &WebhookHandler{webhookURL: webhookURL}, nil
|
return &WebhookHandler{webhookURL: webhookURL}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *WebhookHandler) Log(event Event) error {
|
func (w *WebhookHandler) Log(level slog.Level, message string, data ...slog.Field) error {
|
||||||
jsonData, err := json.Marshal(event)
|
jsonData, err := json.Marshal(event)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error marshaling event: %v", err)
|
return fmt.Errorf("error marshaling event: %v", err)
|
||||||
|
Loading…
Reference in New Issue
Block a user