logger.go 665 B

123456789101112131415161718192021222324252627282930313233343536
  1. package logger
  2. import (
  3. "os"
  4. "path/filepath"
  5. "time"
  6. "github.com/ayn2op/discordo/internal/config"
  7. "github.com/charmbracelet/log"
  8. )
  9. // Opens the log file and configures the default logger.
  10. func Load() error {
  11. log.SetReportTimestamp(true)
  12. log.SetReportCaller(true)
  13. log.SetTimeFormat(time.Kitchen)
  14. path, err := os.UserCacheDir()
  15. if err != nil {
  16. return err
  17. }
  18. path = filepath.Join(path, config.Name)
  19. if err := os.MkdirAll(path, os.ModePerm); err != nil {
  20. return err
  21. }
  22. path = filepath.Join(path, "logs.txt")
  23. file, err := os.OpenFile(path, os.O_CREATE|os.O_APPEND, os.ModePerm)
  24. if err != nil {
  25. return err
  26. }
  27. log.SetOutput(file)
  28. return nil
  29. }