pgterminate/log/log.go
2018-06-24 17:59:54 +02:00

107 lines
2 KiB
Go

package log
import (
"errors"
"log"
"os"
)
const (
// DebugLevel for debug messages
DebugLevel int = iota
// InfoLevel for info messages
InfoLevel
// WarnLevel for warning messages
WarnLevel
// ErrorLevel for error messages
ErrorLevel
// FatalLevel for fatal messages
FatalLevel
)
var level int
func init() {
level = WarnLevel
}
// SetLevel configures logging level
func SetLevel(logLevel int) error {
if logLevel < DebugLevel || logLevel > FatalLevel {
return errors.New("Wrong logging level")
}
level = logLevel
return nil
}
// Debug prints debug messages
func Debug(m string) {
if level <= DebugLevel {
log.Println("[DEBUG] " + m)
}
}
// Debugf prints debug messages with printf format
func Debugf(format string, values ...interface{}) {
if level <= DebugLevel {
log.Printf("[DEBUG] "+format, values...)
}
}
// Info prints info messages
func Info(m string) {
if level <= InfoLevel {
log.Println("[INFO] " + m)
}
}
// Infof prints info messages with printf format
func Infof(format string, values ...interface{}) {
if level <= InfoLevel {
log.Printf("[INFO] "+format, values...)
}
}
// Warn prints warning messages
func Warn(m string) {
if level <= WarnLevel {
log.Println("[WARN] " + m)
}
}
// Warnf prints warning messages with printf format
func Warnf(format string, values ...interface{}) {
if level <= WarnLevel {
log.Printf("[WARN] "+format, values...)
}
}
// Error prints error messages
func Error(m string) {
if level <= ErrorLevel {
log.Println("[ERROR] " + m)
}
}
// Errorf prints error messages with printf format
func Errorf(format string, values ...interface{}) {
if level <= WarnLevel {
log.Printf("[ERROR] "+format, values...)
}
}
// Fatal prints fatal messages and exit
func Fatal(m string) {
if level <= FatalLevel {
log.Println("[FATAL] " + m)
}
os.Exit(1)
}
// Fatalf prints fatal messages with printf format and exit
func Fatalf(format string, values ...interface{}) {
if level <= FatalLevel {
log.Printf("[FATAL] "+format, values...)
}
os.Exit(1)
}