28 lines
820 B
Go
28 lines
820 B
Go
package core
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
)
|
|
|
|
// LogEntry represents a single log record flowing through the pipeline
|
|
type LogEntry struct {
|
|
Time time.Time `json:"time"`
|
|
Node string `json:"node,omitempty"` // origin node identity for chained topologies; first hop stamps, relays preserve
|
|
Source string `json:"source"`
|
|
Level string `json:"level,omitempty"`
|
|
Message string `json:"message"`
|
|
Fields json.RawMessage `json:"fields,omitempty"`
|
|
RawSize int64 `json:"-"`
|
|
}
|
|
|
|
// TransportEvent contains the final payload and minimal metadata needed by sinks
|
|
type TransportEvent struct {
|
|
Time time.Time
|
|
// Formatted, serialized log payload
|
|
Payload []byte
|
|
// Structured entry for re-serializing sinks (chain links). Zero Time => absent
|
|
Entry LogEntry
|
|
}
|
|
|