Archived
1
0
Fork 0

Initial release

This commit is contained in:
Julien Riou 2019-03-08 18:14:22 +01:00
commit 9818566369
No known key found for this signature in database
GPG key ID: BA3E15176E45E85D
10 changed files with 634 additions and 0 deletions

74
src/log.go Normal file
View file

@ -0,0 +1,74 @@
package main
import (
"fmt"
"log"
)
// LogLevel is the minimum level of log messages to print
type LogLevel int
// Auto set log level
const (
DEBUG LogLevel = iota
INFO
WARNING
ERROR
FATAL
)
var level = INFO
// SetLogLevel sets minimum log level to print
func SetLogLevel(logLevel string) error {
switch logLevel {
case "FATAL":
level = FATAL
case "ERROR":
level = ERROR
case "WARNING":
level = WARNING
case "INFO":
level = INFO
case "DEBUG":
level = DEBUG
default:
return fmt.Errorf("log level %s not allowed", logLevel)
}
return nil
}
// Debug prints very verbose messages
func Debug(message string, args ...interface{}) {
if level <= DEBUG {
log.Printf("DEBUG: "+message, args...)
}
}
// Info prints informative messages
func Info(message string, args ...interface{}) {
if level <= INFO {
log.Printf("INFO: "+message, args...)
}
}
// Warning prints messages you should give attention
func Warning(message string, args ...interface{}) {
if level <= WARNING {
log.Printf("WARNING: "+message, args...)
}
}
// Error prints impacting messages
func Error(message string, args ...interface{}) {
if level <= ERROR {
log.Printf("ERROR: "+message, args...)
}
}
// Fatal prints a message and exit program
func Fatal(message string, args ...interface{}) {
if level <= FATAL {
log.Fatalf("FATAL: "+message, args...)
}
}