feat: add basic miniflux conection

This commit is contained in:
Alexander Navarro 2024-12-17 20:11:19 -03:00
parent 1459abdd84
commit 22b4abf73b
7 changed files with 173 additions and 6 deletions

88
internal/logger/logger.go Normal file
View file

@ -0,0 +1,88 @@
package logger
import (
"fmt"
"io"
"log"
"os"
"strings"
"time"
"github.com/spf13/viper"
)
const (
verbose = 1 << iota
info
error
debug
)
func getLogger(level int, prefix string) *log.Logger {
var output io.Writer
if level == error {
output = os.Stderr
} else {
output = os.Stdout
}
// TODO: get from config
configLevel := debug
if configLevel < level {
output = io.Discard
}
prefix = fmt.Sprintf("%-*s", 6, prefix)
logger := log.New(output, prefix, log.Ldate|log.Ltime|log.Lmicroseconds|log.Lmsgprefix)
return logger
}
func logMessage(level string, message string) {
currentLevel := viper.GetString("log_level")
levels := map[string]int{
"verbose": 1,
"info": 2,
"error": 3,
"debug": 4,
}
if levels[currentLevel] <= levels[level] {
timestamp := time.Now().Format("2006-01-02 15:04:05")
prefix := strings.ToUpper(level)
fmt.Printf("%-7s %s %s\n", prefix, timestamp, message)
}
}
func Verbose(message string) {
logger := getLogger(verbose, "VERB")
logger.Println(message)
}
func Info(message string, args ...any) {
logger := getLogger(info, "INFO")
msg := fmt.Sprintf(message, args...)
logger.Println(msg)
}
func Error(message string, args ...any) {
logger := getLogger(error, "ERROR")
msg := fmt.Sprintf(message, args...)
logger.Println(msg)
}
func Debug(message string, args ...any) {
logger := getLogger(debug, "DEBUG")
msg := fmt.Sprintf(message, args...)
logger.Println(msg)
}
func Fatal(message string, args ...any) {
logger := getLogger(error, "FATAL")
msg := fmt.Sprintf(message, args...)
logger.Fatalln(msg)
}