summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/log/log.go50
1 files changed, 37 insertions, 13 deletions
diff --git a/common/log/log.go b/common/log/log.go
index 5d0a146..f29b33b 100644
--- a/common/log/log.go
+++ b/common/log/log.go
@@ -41,13 +41,20 @@ import (
const (
elidedAddr = "[scrubbed]"
- levelError = iota
- levelWarn
- levelInfo
- levelDebug
+ // LevelError is the ERROR log level (NOTICE/ERROR).
+ LevelError = iota
+
+ // LevelWarn is the WARN log level, (NOTICE/ERROR/WARN).
+ LevelWarn
+
+ // LevelInfo is the INFO log level, (NOTICE/ERROR/WARN/INFO).
+ LevelInfo
+
+ // LevelDebug is the DEBUG log level, (NOTICE/ERROR/WARN/INFO/DEBUG).
+ LevelDebug
)
-var logLevel = levelInfo
+var logLevel = LevelInfo
var enableLogging bool
var unsafeLogging bool
@@ -66,18 +73,34 @@ func Init(enable bool, logFilePath string, unsafe bool) error {
return nil
}
+// Enabled returns if logging is enabled.
+func Enabled() bool {
+ return enableLogging
+}
+
+// Unsafe returns if unsafe logging is allowed (the caller MAY skip eliding
+// addresses and other bits of sensitive information).
+func Unsafe() bool {
+ return unsafeLogging
+}
+
+// Level returns the current log level.
+func Level() int {
+ return logLevel
+}
+
// SetLogLevel sets the log level to the value indicated by the given string
// (case-insensitive).
func SetLogLevel(logLevelStr string) error {
switch strings.ToUpper(logLevelStr) {
case "ERROR":
- logLevel = levelError
+ logLevel = LevelError
case "WARN":
- logLevel = levelWarn
+ logLevel = LevelWarn
case "INFO":
- logLevel = levelInfo
+ logLevel = LevelInfo
case "DEBUG":
- logLevel = levelDebug
+ logLevel = LevelDebug
default:
return fmt.Errorf("invalid log level '%s'", logLevelStr)
}
@@ -85,6 +108,7 @@ func SetLogLevel(logLevelStr string) error {
}
// Noticef logs the given format string/arguments at the NOTICE log level.
+// Unless logging is disabled, Noticef logs are always emitted.
func Noticef(format string, a ...interface{}) {
if enableLogging {
msg := fmt.Sprintf(format, a...)
@@ -94,7 +118,7 @@ func Noticef(format string, a ...interface{}) {
// Errorf logs the given format string/arguments at the ERROR log level.
func Errorf(format string, a ...interface{}) {
- if enableLogging && logLevel >= levelError {
+ if enableLogging && logLevel >= LevelError {
msg := fmt.Sprintf(format, a...)
log.Print("[ERROR]: " + msg)
}
@@ -102,7 +126,7 @@ func Errorf(format string, a ...interface{}) {
// Warnf logs the given format string/arguments at the WARN log level.
func Warnf(format string, a ...interface{}) {
- if enableLogging && logLevel >= levelWarn {
+ if enableLogging && logLevel >= LevelWarn {
msg := fmt.Sprintf(format, a...)
log.Print("[WARN]: " + msg)
}
@@ -110,7 +134,7 @@ func Warnf(format string, a ...interface{}) {
// Infof logs the given format string/arguments at the INFO log level.
func Infof(format string, a ...interface{}) {
- if enableLogging && logLevel >= levelInfo {
+ if enableLogging && logLevel >= LevelInfo {
msg := fmt.Sprintf(format, a...)
log.Print("[INFO]: " + msg)
}
@@ -118,7 +142,7 @@ func Infof(format string, a ...interface{}) {
// Debugf logs the given format string/arguments at the INFO log level.
func Debugf(format string, a ...interface{}) {
- if enableLogging && logLevel >= levelDebug {
+ if enableLogging && logLevel >= LevelDebug {
msg := fmt.Sprintf(format, a...)
log.Print("[DEBUG]: " + msg)
}