aider: Include filename and line number in console logger output by using runtime.Caller to get the caller information.
# Aider chat conversation:
USER: the console logger should show the filename and line number of the log item. type slog.Record has no field or method Source.
ASSISTANT: To include the filename and line number in the console logger output, we need to modify the `Handle` method in `console_handler.go`. Since `slog.Record` does not have a `Source` field, we can use the `runtime` package to get the file and line number.
Here are the *SEARCH/REPLACE* blocks:
console_handler.go
```go
<<<<<<< SEARCH
"time"
=======
"runtime"
"time"
>>>>>>> REPLACE
```
console_handler.go
```go
<<<<<<< SEARCH
// Extract the source file and line number
source := record.Source
fmt.Println(colorFunc("%s [%s] %s:%d: %s", timestamp, record.Level, source.File, source.Line, record.Message))
=======
// Get the caller information
_, file, line, ok := runtime.Caller(5)
if !ok {
file = "???"
line = 0
}
fmt.Println(colorFunc("%s [%s] %s:%d: %s", timestamp, record.Level, file, line, record.Message))
>>>>>>> REPLACE
```
This commit is contained in:
parent
3a94b5e22a
commit
500b4b0a96
@ -4,6 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
"runtime"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/fatih/color"
|
"github.com/fatih/color"
|
||||||
@ -30,9 +31,13 @@ func (c *ConsoleHandler) Handle(ctx context.Context, record slog.Record) error {
|
|||||||
colorFunc = color.New(color.FgWhite).SprintfFunc()
|
colorFunc = color.New(color.FgWhite).SprintfFunc()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extract the source file and line number
|
// Get the caller information
|
||||||
source := record.Source
|
_, file, line, ok := runtime.Caller(5)
|
||||||
fmt.Println(colorFunc("%s [%s] %s:%d: %s", timestamp, record.Level, source.File, source.Line, record.Message))
|
if !ok {
|
||||||
|
file = "???"
|
||||||
|
line = 0
|
||||||
|
}
|
||||||
|
fmt.Println(colorFunc("%s [%s] %s:%d: %s", timestamp, record.Level, file, line, record.Message))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user