github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgLog/LogWriter.go (about)

     1  package kmgLog
     2  
     3  import (
     4  	"encoding/json"
     5  	"time"
     6  )
     7  
     8  type LogWriter func(r LogRow)
     9  
    10  // 这个LogRow仅仅是用来序列化的,拿去反序列化不好用,不靠谱
    11  type LogRow struct {
    12  	Cat  string
    13  	Time time.Time // 让json库自己折腾去.
    14  	// Data []json.RawMessage //反序列化可以用这个定义,但是此处只有序列化用定义
    15  	Data []interface{}
    16  }
    17  
    18  func (r LogRow) Marshal() (b []byte, err error) {
    19  	return json.Marshal(r)
    20  }
    21  
    22  /*
    23  func (r LogRow) UnmarshalData(index int, obj interface{}) (err error) {
    24  	return json.Unmarshal(r.Data[index], obj)
    25  }
    26  func (r LogRow) MustUnmarshalData(index int, obj interface{}) {
    27  	err := json.Unmarshal(r.Data[index], obj)
    28  	if err != nil {
    29  		panic(err)
    30  	}
    31  }
    32  */