logger.go 622 B

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