Documentation ¶
Overview ¶
Package jsonlog provides helper functions to parse and print time (time.Time) as JSON.
Index ¶
Constants ¶
const ( // RFC3339NanoFixed is our own version of RFC339Nano because we want one // that pads the nano seconds part with zeros to ensure // the timestamps are aligned in the logs. RFC3339NanoFixed = "2006-01-02T15:04:05.000000000Z07:00" // JSONFormat is the format used by FastMarshalJSON JSONFormat = `"` + time.RFC3339Nano + `"` )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type JSONLog ¶
type JSONLog struct { // Log is the log message Log string `json:"log,omitempty"` // Stream is the log source Stream string `json:"stream,omitempty"` // Created is the created timestamp of log Created time.Time `json:"time"` // Attrs is the list of extra attributes provided by the user Attrs map[string]string `json:"attrs,omitempty"` }
JSONLog represents a log message, typically a single entry from a given log stream. JSONLogs can be easily serialized to and from JSON and support custom formatting.
func (*JSONLog) Format ¶
Format returns the log formatted according to format If format is nil, returns the log message If format is json, returns the log marshaled in json format By default, returns the log with the log time formatted according to format.
func (*JSONLog) MarshalJSON ¶ added in v1.3.0
MarshalJSON marshals the JSONLog.
func (*JSONLog) MarshalJSONBuf ¶ added in v1.3.0
MarshalJSONBuf marshals the JSONLog and stores the result to a bytes.Buffer.
type JSONLogs ¶ added in v1.9.0
type JSONLogs struct { Log []byte `json:"log,omitempty"` Stream string `json:"stream,omitempty"` Created string `json:"time"` // json-encoded bytes RawAttrs json.RawMessage `json:"attrs,omitempty"` }
JSONLogs is based on JSONLog. It allows marshalling JSONLog from Log as []byte and an already marshalled Created timestamp.