diff --git a/graph.go b/graph.go index c14ce94..27ba55c 100644 --- a/graph.go +++ b/graph.go @@ -27,6 +27,8 @@ type Logger interface { Logf(component string, format string, items ... interface{}) // Log a map of attributes and a format string Logm(component string, fields map[string]interface{}, format string, items ... interface{}) + // Log a structure to a file by marshalling and unmarshalling the json + Logj(component string, s interface{}, format string, items ... interface{}) } func NewConsoleLogger(components []string) *ConsoleLogger { @@ -93,6 +95,19 @@ func (logger * ConsoleLogger) Logf(component string, format string, items ... in } } +func (logger * ConsoleLogger) Logj(component string, s interface{}, format string, items ... interface{}) { + m := map[string]interface{}{} + ser, err := json.Marshal(s) + if err != nil { + panic("LOG_MARSHAL_ERR") + } + err = json.Unmarshal(ser, &m) + if err != nil { + panic("LOG_UNMARSHAL_ERR") + } + logger.Logm(component, m, format, items...) +} + type NodeID string // Generate a random id func RandID() NodeID {