Files
Logging-System/sink/memory.go
T
weichenandCursor bed0dbf076
ci / vet-and-test (push) Successful in 4s
ci / docker-checkout-hostgateway (push) Successful in 2s
Add a structured logger and collector so runs can be traced across processes.
Sync and async sinks, redaction, and a queryable HTTP service keep concurrent logs tied to a trace id.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-29 13:51:16 +00:00

37 lines
723 B
Go

package sink
import (
"sync"
"logging-system/logsys"
)
// Memory 把日志留在内存里,供测试和进程内订阅前的缓冲。
type Memory struct {
mu sync.Mutex
Entries []logsys.Entry
}
// Write 追加一条日志。
func (m *Memory) Write(e logsys.Entry) error {
m.mu.Lock()
defer m.mu.Unlock()
m.Entries = append(m.Entries, e)
return nil
}
// Sync 无缓冲可刷。
func (m *Memory) Sync() error { return nil }
// Close 不释放已记录的日志。
func (m *Memory) Close() error { return nil }
// Snapshot 返回当前副本。
func (m *Memory) Snapshot() []logsys.Entry {
m.mu.Lock()
defer m.mu.Unlock()
out := make([]logsys.Entry, len(m.Entries))
copy(out, m.Entries)
return out
}