Documentation ¶
Overview ¶
Package implements the decoding of logfmt key-value pairs.
Example logfmt message:
foo=bar a=14 baz="hello kitty" cool%story=bro f %^asdf
Example result in JSON:
{ "foo": "bar", "a": 14, "baz": "hello kitty", "cool%story": "bro", "f": true, "%^asdf": true }
EBNFish:
ident_byte = any byte greater than ' ', excluding '=' and '"' string_byte = any byte excluding '"' and '\' garbage = !ident_byte ident = ident_byte, { ident byte } key = ident value = ident | '"', { string_byte | '\', '"' }, '"' pair = key, '=', value | key, '=' | key message = { garbage, pair }, garbage
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrUnterminatedString = errors.New("logfmt: unterminated string")
Functions ¶
Types ¶
type Handler ¶
Handler is the interface implemented by objects that accept logfmt key-value pairs. HandleLogfmt must copy the logfmt data if it wishes to retain the data after returning.
func NewStructHandler ¶
type HandlerFunc ¶
The HandlerFunc type is an adapter to allow the use of ordinary functions as logfmt handlers. If f is a function with the appropriate signature, HandlerFunc(f) is a Handler object that calls f.
func (HandlerFunc) HandleLogfmt ¶
func (f HandlerFunc) HandleLogfmt(key, val []byte) error
type InvalidUnmarshalError ¶
An InvalidUnmarshalError describes an invalid argument passed to Unmarshal. (The argument to Unmarshal must be a non-nil pointer.)
func (*InvalidUnmarshalError) Error ¶
func (e *InvalidUnmarshalError) Error() string
type StructHandler ¶
type StructHandler struct {
// contains filtered or unexported fields
}
StructHandler unmarshals logfmt into a struct. It matches incoming keys to the the struct's fields (either the struct field name or its tag, preferring an exact match but also accepting a case-insensitive match.
Field types supported by StructHandler are:
all numeric types (e.g. float32, int, etc.) []byte string bool - true if key is present, false otherwise (the value is ignored). time.Duration - uses time.ParseDuration
If a field is a pointer to an above type, and a matching key is not present in the logfmt data, the pointer will be untouched.
If v is not a pointer to an Handler or struct, Unmarshal will return an error.
func (*StructHandler) HandleLogfmt ¶
func (h *StructHandler) HandleLogfmt(key, val []byte) error
type UnmarshalTypeError ¶
type UnmarshalTypeError struct { Value string // the logfmt value Type reflect.Type // type of Go value it could not be assigned to }
An UnmarshalTypeError describes a logfmt value that was not appropriate for a value of a specific Go type.
func (*UnmarshalTypeError) Error ¶
func (e *UnmarshalTypeError) Error() string