From c32a82b88d8aaa8b42e1039a282c7f31b08e7841 Mon Sep 17 00:00:00 2001 From: Andrea Franz Date: Wed, 18 Apr 2018 16:13:43 +0200 Subject: [PATCH] add file/stream log handlers to StatusNode (#833) * add file/stream log handlers to StatusNode * move log initialisation to the lib pkg used by react * remove error check in log initialisation --- lib/library.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/lib/library.go b/lib/library.go index 15e818538..f2daf13e0 100644 --- a/lib/library.go +++ b/lib/library.go @@ -32,15 +32,45 @@ func GenerateConfig(datadir *C.char, networkID C.int, devMode C.int) *C.char { return C.CString(string(outBytes)) } +func initLogger(config *params.NodeConfig) { + var ( + handler log.Handler + err error + ) + + if config.LogFile != "" { + handler, err = log.FileHandler(config.LogFile, log.LogfmtFormat()) + if err != nil { + return + } + } else { + handler = log.StreamHandler(os.Stderr, log.TerminalFormat(true)) + } + + // level, err := log.LvlFromString(strings.ToLower(config.LogLevel)) + level, err := log.LvlFromString("trace") + if err != nil { + return + } + + filteredHandler := log.LvlFilterHandler(level, handler) + log.Root().SetHandler(filteredHandler) + + return +} + //StartNode - start Status node //export StartNode func StartNode(configJSON *C.char) *C.char { config, err := params.LoadNodeConfig(C.GoString(configJSON)) + if err != nil { return makeJSONResponse(err) } + initLogger(config) statusAPI.StartNodeAsync(config) + return makeJSONResponse(nil) }