kubo/thirdparty/eventlog/entry.go
Ho-Sheng Hsiao bf22aeec0a Reorged imports from jbenet/go-ipfs to ipfs/go-ipfs
- Modified Godeps/Godeps.json by hand
- [TEST] Updated welcome docs hash to sharness
- [TEST] Updated contact doc
- [TEST] disabled breaking test (t0080-repo refs local)
2015-03-31 12:52:25 -07:00

40 lines
943 B
Go

package eventlog
import (
"time"
"github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/Sirupsen/logrus"
"github.com/ipfs/go-ipfs/util"
)
type entry struct {
loggables []Loggable
system string
event string
}
// Log logs the event unconditionally (regardless of log level)
// TODO add support for leveled-logs once we decide which levels we want
// for our structured logs
func (e *entry) Log() {
e.log()
}
// log is a private method invoked by the public Log, Info, Error methods
func (e *entry) log() {
// accumulate metadata
accum := Metadata{}
for _, loggable := range e.loggables {
accum = DeepMerge(accum, loggable.Loggable())
}
// apply final attributes to reserved keys
// TODO accum["level"] = level
accum["event"] = e.event
accum["system"] = e.system
accum["time"] = util.FormatRFC3339(time.Now())
// TODO roll our own event logger
logrus.WithFields(map[string]interface{}(accum)).Info(e.event)
}