|
|
@ -0,0 +1,51 @@ |
|
|
|
package logger |
|
|
|
|
|
|
|
import ( |
|
|
|
"fmt" |
|
|
|
"os" |
|
|
|
|
|
|
|
"github.com/tendermint/log15" |
|
|
|
"github.com/tendermint/tendermint/config" |
|
|
|
) |
|
|
|
|
|
|
|
var rootHandler log15.Handler |
|
|
|
|
|
|
|
func init() { |
|
|
|
handlers := []log15.Handler{} |
|
|
|
|
|
|
|
// By default, there's a stdout terminal format handler.
|
|
|
|
handlers = append(handlers, log15.LvlFilterHandler( |
|
|
|
log15.LvlDebug, |
|
|
|
log15.StreamHandler(os.Stdout, log15.TerminalFormat()), |
|
|
|
)) |
|
|
|
|
|
|
|
// Maybe also write to a file.
|
|
|
|
if config.App.GetString("Log.Dir") != "" { |
|
|
|
// Create log dir if it doesn't exist
|
|
|
|
err := os.MkdirAll(config.App.GetString("Log.Dir"), 0700) |
|
|
|
if err != nil { |
|
|
|
fmt.Printf("Could not create directory: %v", err) |
|
|
|
os.Exit(1) |
|
|
|
} |
|
|
|
// File handler
|
|
|
|
handlers = append(handlers, log15.LvlFilterHandler( |
|
|
|
log15.LvlDebug, |
|
|
|
log15.Must.FileHandler(config.App.GetString("Log.Dir")+"/tendermint.log", log15.LogfmtFormat()), |
|
|
|
)) |
|
|
|
} |
|
|
|
|
|
|
|
// Set rootHandler.
|
|
|
|
rootHandler = log15.MultiHandler(handlers...) |
|
|
|
|
|
|
|
// By setting handlers on the root, we handle events from all loggers.
|
|
|
|
log15.Root().SetHandler(rootHandler) |
|
|
|
} |
|
|
|
|
|
|
|
// See binary/log for an example of usage.
|
|
|
|
func RootHandler() log15.Handler { |
|
|
|
return rootHandler |
|
|
|
} |
|
|
|
|
|
|
|
func New(ctx ...interface{}) log15.Logger { |
|
|
|
return log15.Root().New(ctx...) |
|
|
|
} |