logger.go 649 B

12345678910111213141516171819202122232425262728293031323334
  1. package logger
  2. import (
  3. "log/slog"
  4. "os"
  5. "path/filepath"
  6. "github.com/ayn2op/discordo/internal/consts"
  7. )
  8. const fileName = "logs.txt"
  9. // Opens the log file and configures default logger.
  10. func Load() error {
  11. path, err := os.UserCacheDir()
  12. if err != nil {
  13. return err
  14. }
  15. path = filepath.Join(path, consts.Name)
  16. if err := os.MkdirAll(path, os.ModePerm); err != nil {
  17. return err
  18. }
  19. path = filepath.Join(path, fileName)
  20. file, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY, os.ModePerm)
  21. if err != nil {
  22. return err
  23. }
  24. l := slog.New(slog.NewTextHandler(file, &slog.HandlerOptions{AddSource: true}))
  25. slog.SetDefault(l)
  26. return nil
  27. }