-
-
Notifications
You must be signed in to change notification settings - Fork 580
/
logs.go
49 lines (41 loc) · 1.33 KB
/
logs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package cmd
import (
"strings"
"github.com/drud/ddev/pkg/ddevapp"
"github.com/drud/ddev/pkg/util"
"github.com/spf13/cobra"
)
var (
tail string
follow bool
timestamp bool
)
// DdevLogsCmd contains the "ddev logs" command
var DdevLogsCmd = &cobra.Command{
Use: "logs",
Short: "Get the logs from your running services.",
Long: `Uses 'docker logs' to display stdout from the running services.`,
Example: `ddev logs
ddev logs -f
ddev logs -s db`,
Run: func(cmd *cobra.Command, args []string) {
app, err := ddevapp.GetActiveApp("")
if err != nil {
util.Failed("Failed to retrieve logs: %v", err)
}
if strings.Contains(app.SiteStatus(), ddevapp.SiteStopped) {
util.Failed("Project is not currently running. Try 'ddev start'.")
}
err = app.Logs(serviceType, follow, timestamp, tail)
if err != nil {
util.Failed("Failed to retrieve logs for %s: %v", app.GetName(), err)
}
},
}
func init() {
DdevLogsCmd.Flags().BoolVarP(&follow, "follow", "f", false, "Follow the logs in real time.")
DdevLogsCmd.Flags().BoolVarP(×tamp, "time", "t", false, "Add timestamps to logs")
DdevLogsCmd.Flags().StringVarP(&serviceType, "service", "s", "web", "Defines the service to retrieve logs from. [e.g. web, db]")
DdevLogsCmd.Flags().StringVarP(&tail, "tail", "", "", "How many lines to show")
RootCmd.AddCommand(DdevLogsCmd)
}