48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
/*
|
|
Package logger provides a simple logger for the application.
|
|
*/
|
|
package logger
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/fatih/color"
|
|
"log"
|
|
"strings"
|
|
)
|
|
|
|
// LogSuccessF LogSuccess logs a success message to stdout
|
|
func LogSuccessF(format string, a ...interface{}) {
|
|
logger("success", format, a...)
|
|
}
|
|
|
|
// LogInfoF LogInfo logs an info message to stdout
|
|
func LogInfoF(format string, a ...interface{}) {
|
|
logger("info", format, a...)
|
|
}
|
|
|
|
// LogErrorF LogError logs an error message to stdout
|
|
func LogErrorF(format string, a ...interface{}) {
|
|
logger("error", format, a...)
|
|
}
|
|
|
|
// logger logger is a helper function to log messages to stdout
|
|
func logger(level string, format string, a ...interface{}) {
|
|
var c *color.Color
|
|
switch level {
|
|
case "success":
|
|
c = color.New(color.Bold).Add(color.FgGreen)
|
|
case "info":
|
|
c = color.New(color.FgBlue)
|
|
case "error":
|
|
c = color.New(color.FgRed)
|
|
}
|
|
|
|
date := new(strings.Builder)
|
|
log.New(date, "", log.LstdFlags).Print()
|
|
|
|
c.Printf("%s - %s\n",
|
|
strings.TrimSpace(date.String()),
|
|
fmt.Sprintf(format, a...),
|
|
)
|
|
}
|