Add logging package

it will abstract other frameworks eventually, but for now keep it simple
This commit is contained in:
Ettore Di Giacinto 2019-11-01 16:27:44 +01:00
parent ef1d0e5573
commit e835562543
No known key found for this signature in database
GPG Key ID: 1ADA699B145A2D1C

79
pkg/logger/logger.go Normal file
View File

@ -0,0 +1,79 @@
package logger
import (
"fmt"
"time"
. "github.com/logrusorgru/aurora"
"github.com/briandowns/spinner"
)
var s *spinner.Spinner
func Spinner(i int) {
if i > 43 {
i = 43
}
s = spinner.New(spinner.CharSets[i], 100*time.Millisecond) // Build our new spinner
s.Start() // Start the spinner
}
func SpinnerText(suffix, prefix string) {
s.Suffix = Bold(Magenta(suffix)).BgBlack().String()
s.Prefix = Bold(Cyan(prefix)).String()
}
func SpinnerStop() {
s.Stop()
s = nil
}
func Warning(msg ...interface{}) {
if s != nil {
SpinnerText(Sprintf(msg), Bold(Yellow("Warn")).BgBlack().String())
return
}
cmd := []interface{}{Bold(Yellow("Warn")).BgBlack().String()}
for _, f := range msg {
cmd = append(cmd, f)
}
fmt.Println(cmd)
}
func Debug(msg ...interface{}) {
if s != nil {
SpinnerText(Sprintf(msg), Bold(White("Debug")).BgBlack().String())
return
}
cmd := []interface{}{Bold(White("Debug")).String()}
for _, f := range msg {
cmd = append(cmd, f)
}
fmt.Println(cmd)
}
func Info(msg ...interface{}) {
if s != nil {
SpinnerText(Sprintf(msg), Bold(Blue("Info")).BgBlack().String())
return
}
cmd := []interface{}{Bold(Green("Info")).String()}
for _, f := range msg {
cmd = append(cmd, f)
}
fmt.Println(cmd)
}
func Error(msg ...interface{}) {
if s != nil {
SpinnerText(Sprintf(msg), Bold(Red("Error")).BgBlack().String())
return
}
cmd := []interface{}{Bold(Red("Error")).String()}
for _, f := range msg {
cmd = append(cmd, f)
}
fmt.Println(cmd)
}