@@ -7,9 +7,11 @@ import (
77 "log/slog"
88 "os"
99 "os/signal"
10+ "path/filepath"
1011 "time"
1112
1213 "github.com/charmbracelet/crush/internal/config"
14+ crushlog "github.com/charmbracelet/crush/internal/log"
1315 "github.com/charmbracelet/crush/internal/server"
1416 "github.com/spf13/cobra"
1517)
@@ -39,15 +41,8 @@ var serverCmd = &cobra.Command{
3941 return fmt.Errorf("failed to load configuration: %v", err)
4042 }
4143
42− handler := slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{
43− Level: slog.LevelInfo,
44− })
45− if debug {
46− handler = slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{
47− Level: slog.LevelDebug,
48− })
49− }
50− slog.SetDefault(slog.New(handler))
44+ logFile := filepath.Join(config.GlobalCacheDir(), "server-"+safeNameRegexp.ReplaceAllString(serverHost, "_"), "crush.log")
45+ crushlog.Setup(logFile, debug)
5146
5247 hostURL, err := server.ParseHostURL(serverHost)
5348 if err != nil {