diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-07-06 18:20:46 +0300 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-07-06 18:20:46 +0300 |
| commit | bbd4eae95fe7dec5b85e2124eb016c7a10a390fe (patch) | |
| tree | f6fc7870a97b28b87fa16e112e93d8be28cc397a /internal/packet | |
| parent | d4475050721738f26652c914b0668f887aac97b8 (diff) | |
Added better logging for packets and payloads and now the writer is
responsible for packaging into a packet the payload (instead of everyone
who sends to the writer)
Diffstat (limited to 'internal/packet')
| -rw-r--r-- | internal/packet/packet.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/internal/packet/packet.go b/internal/packet/packet.go index 8bc9669..a6a47e2 100644 --- a/internal/packet/packet.go +++ b/internal/packet/packet.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" "io" + "log/slog" "math" "github.com/vmihailenco/msgpack/v5" @@ -237,9 +238,20 @@ func (p Packet) Payload() []byte { } func (p Packet) String() string { + assert.Never("oops, found someone who uses packet.String(), improve this") return fmt.Sprintf("Packet(v%v t%v %v [%v bytes...])", p.Version(), p.Encoding().String(), p.Type(), p.PayloadLength()) } +func (p Packet) LogValue() slog.Value { + return slog.GroupValue( + slog.Int("version", int(p.Version())), + slog.String("encoding", p.Encoding().String()), + slog.String("type", p.Type().String()), + slog.Int("payload_length", int(p.PayloadLength())), + slog.Int("total_bytes", len(p.data)), + ) +} + func (p Packet) Into(writer io.Writer) (int, error) { return writer.Write(p.data) } |
