summaryrefslogtreecommitdiffhomepage
path: root/internal/logging/writer.go
diff options
context:
space:
mode:
authorKujtim Hoxha <[email protected]>2025-04-09 19:19:45 +0200
committerGitHub <[email protected]>2025-04-09 19:19:45 +0200
commit2af1bbb82852ebebb59ef431e5362c0f3993e5a0 (patch)
treecf20e499c14fb4fd6c1e56c99adc35626faead9c /internal/logging/writer.go
parentb12ca55594c4a4c5cc0e81971df719a382f1f344 (diff)
parent635324d386d52e117efea6fcbe9dbf306ec75653 (diff)
downloadopencode-2af1bbb82852ebebb59ef431e5362c0f3993e5a0.tar.gz
opencode-2af1bbb82852ebebb59ef431e5362c0f3993e5a0.zip
Merge pull request #25 from kujtimiihoxha/cleanup-logs-status
Cleanup Logs and Status
Diffstat (limited to 'internal/logging/writer.go')
-rw-r--r--internal/logging/writer.go27
1 files changed, 19 insertions, 8 deletions
diff --git a/internal/logging/writer.go b/internal/logging/writer.go
index b4e899b30..06a5330e3 100644
--- a/internal/logging/writer.go
+++ b/internal/logging/writer.go
@@ -10,15 +10,16 @@ import (
)
type writer struct {
- messages []Message
- *pubsub.Broker[Message]
+ messages []LogMessage
+ *pubsub.Broker[LogMessage]
}
func (w *writer) Write(p []byte) (int, error) {
d := logfmt.NewDecoder(bytes.NewReader(p))
for d.ScanRecord() {
- msg := Message{
- ID: time.Now().Format(time.RFC3339Nano),
+ msg := LogMessage{
+ ID: fmt.Sprintf("%d", time.Now().UnixNano()),
+ Time: time.Now(),
}
for d.ScanKeyval() {
switch string(d.Key()) {
@@ -33,10 +34,20 @@ func (w *writer) Write(p []byte) (int, error) {
case "msg":
msg.Message = string(d.Value())
default:
- msg.Attributes = append(msg.Attributes, Attr{
- Key: string(d.Key()),
- Value: string(d.Value()),
- })
+ if string(d.Key()) == persistKeyArg {
+ msg.Persist = true
+ } else if string(d.Key()) == PersistTimeArg {
+ parsed, err := time.ParseDuration(string(d.Value()))
+ if err != nil {
+ continue
+ }
+ msg.PersistTime = parsed
+ } else {
+ msg.Attributes = append(msg.Attributes, Attr{
+ Key: string(d.Key()),
+ Value: string(d.Value()),
+ })
+ }
}
}
w.messages = append(w.messages, msg)