Something went wrong. Try again.
dockscope is a TUI for viewing Docker containers, logs, metrics and other info, inspired by lazydocker and dtop.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344package parser
import "time"
type LogEntry struct { Timestamp time.Time ContainerID string Container string Level string TraceID string SpanID string Message string Fields map[string]any Raw string}
type Parser interface { // Parse converts a raw log line into a structured LogEntry. // Returns (entry, true) on success, (zero LogEntry, false) if the input cannot be parsed. Parse(raw string) (LogEntry, bool)}
type Chain []Parser
func (c Chain) Parse(raw string) (LogEntry, bool) { for _, p := range c { if entry, ok := p.Parse(raw); ok { return entry, true } }
return rawFallback(raw), true}
type NoopParser struct{}
func (NoopParser) Parse(raw string) (LogEntry, bool) { return rawFallback(raw), true}
func rawFallback(raw string) LogEntry { return LogEntry{Raw: raw, Message: raw, Timestamp: time.Now()}}