2017-01-30 12:12:25 +00:00
|
|
|
package ipfscluster
|
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
logging "github.com/ipfs/go-log"
|
|
|
|
)
|
|
|
|
|
|
|
|
var logger = logging.Logger("cluster")
|
2017-02-09 21:31:04 +00:00
|
|
|
var raftStdLogger = log.New(&logForwarder{}, "", 0)
|
2017-01-30 12:12:25 +00:00
|
|
|
var raftLogger = logging.Logger("raft")
|
|
|
|
|
2017-02-02 22:52:06 +00:00
|
|
|
// SetFacilityLogLevel sets the log level for a given module
|
|
|
|
func SetFacilityLogLevel(f, l string) {
|
2017-01-30 12:12:25 +00:00
|
|
|
/*
|
|
|
|
CRITICAL Level = iota
|
|
|
|
ERROR
|
|
|
|
WARNING
|
|
|
|
NOTICE
|
|
|
|
INFO
|
|
|
|
DEBUG
|
|
|
|
*/
|
2017-02-02 22:52:06 +00:00
|
|
|
logging.SetLogLevel(f, l)
|
2017-01-30 12:12:25 +00:00
|
|
|
}
|
|
|
|
|
2017-02-09 21:31:04 +00:00
|
|
|
// implements the writer interface
|
|
|
|
type logForwarder struct{}
|
2017-01-30 12:12:25 +00:00
|
|
|
|
2017-02-09 21:31:04 +00:00
|
|
|
// Write forwards to our go-log logger.
|
|
|
|
// According to https://golang.org/pkg/log/#Logger.Output
|
|
|
|
// it is called per line.
|
|
|
|
func (fw *logForwarder) Write(p []byte) (n int, err error) {
|
|
|
|
t := strings.TrimSuffix(string(p), "\n")
|
|
|
|
switch {
|
|
|
|
case strings.Contains(t, "[DEBUG]"):
|
|
|
|
raftLogger.Debug(strings.TrimPrefix(t, "[DEBUG] raft: "))
|
|
|
|
case strings.Contains(t, "[WARN]"):
|
|
|
|
raftLogger.Warning(strings.TrimPrefix(t, "[WARN] raft: "))
|
|
|
|
case strings.Contains(t, "[ERR]"):
|
|
|
|
raftLogger.Error(strings.TrimPrefix(t, "[ERR] raft: "))
|
|
|
|
case strings.Contains(t, "[INFO]"):
|
|
|
|
raftLogger.Info(strings.TrimPrefix(t, "[INFO] raft: "))
|
|
|
|
default:
|
|
|
|
raftLogger.Debug(t)
|
|
|
|
}
|
|
|
|
return len(p), nil
|
2017-01-30 12:12:25 +00:00
|
|
|
}
|