Files
gosqldump/internal/logger/init.go

49 lines
1.0 KiB
Go
Raw Normal View History

2024-08-30 11:25:28 +12:00
package logger
import (
"errors"
"fmt"
"github.com/charmbracelet/log"
"github.com/spf13/viper"
2024-08-30 12:21:09 +12:00
"hub.cybercinch.nz/guisea/gosqldump/internal/config/key"
2024-08-30 11:25:28 +12:00
"os"
"path/filepath"
"time"
"github.com/samber/lo"
2024-08-30 12:21:09 +12:00
"hub.cybercinch.nz/guisea/gosqldump/internal/filesystem"
"hub.cybercinch.nz/guisea/gosqldump/internal/where"
2024-08-30 11:25:28 +12:00
)
func Init() error {
logsPath := where.Logs()
if logsPath == "" {
return errors.New("logs path is not set")
}
today := time.Now().Format("2006-01-02")
logFilePath := filepath.Join(logsPath, fmt.Sprintf("%s.log", today))
if !lo.Must(filesystem.Api().Exists(logFilePath)) {
lo.Must(filesystem.Api().Create(logFilePath))
}
logFile, err := filesystem.Api().OpenFile(logFilePath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
return err
}
logger := log.NewWithOptions(logFile, log.Options{
TimeFormat: time.TimeOnly,
ReportTimestamp: true,
ReportCaller: viper.GetBool(key.LogsReportCaller),
})
level, _ := log.ParseLevel(key.LogsLevel)
logger.SetLevel(level)
log.SetDefault(logger)
return nil
}