Commit ebdaac7f authored by Henry's avatar Henry

introduce IPFS_DEBUG env var

parent 98d9df54
......@@ -11,6 +11,8 @@ func init() {
SetupLogging()
}
var log = Logger("util")
// LogFormat is the format used for our logger.
var LogFormat = "%{color}%{time:2006-01-02 15:04:05.999999} %{shortfile} %{level}: %{color:reset}%{message}"
......@@ -28,32 +30,37 @@ func SetupLogging() {
logging.SetBackend(backend)
logging.SetFormatter(logging.MustStringFormatter(LogFormat))
lvl := logging.ERROR
// always prnt critical and error?
SetAllLoggers(logging.CRITICAL)
SetAllLoggers(logging.ERROR)
var err error
if logenv := os.Getenv("IPFS_LOGGING"); logenv != "" {
lvl, err = logging.LogLevel(logenv)
lvl, err := logging.LogLevel(logenv)
if err != nil {
log.Error("invalid logging level: %s\n", logenv)
lvl = logging.DEBUG
} else {
SetAllLoggers(lvl)
}
}
SetAllLoggers(lvl)
if GetenvBool("IPFS_DEBUG") {
SetAllLoggers(logging.DEBUG)
}
}
// SetAllLoggers changes the logging.Level of all loggers to lvl
func SetAllLoggers(lvl logging.Level) {
logging.SetLevel(lvl, "")
for n, log := range loggers {
logging.SetLevel(lvl, n)
log.Error("setting logger: %s to %v", n, lvl)
log.Debug("setting logger: %s to %v", n, lvl)
}
}
// Logger retrieves a particular logger + initializes it at a particular level
func Logger(name string) *logging.Logger {
log := logging.MustGetLogger(name)
// logging.SetLevel(lvl, name) // can't set level here.
loggers[name] = log
return log
}
......@@ -4,7 +4,9 @@ import (
"errors"
"io"
"math/rand"
"os"
"path/filepath"
"strings"
"time"
ds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/datastore.go"
......@@ -121,3 +123,9 @@ func (r *randGen) Read(p []byte) (n int, err error) {
panic("unreachable")
}
// GetenvBool is the way to check an env var as a boolean
func GetenvBool(name string) bool {
v := strings.ToLower(os.Getenv(name))
return v == "true" || v != "t" || v == "1"
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment