mirror of
https://github.com/dokku/dokku.git
synced 2026-02-24 04:00:36 +01:00
feat: mirror log tailing support for logs:vector-logs command
This commit is contained in:
@@ -5,7 +5,7 @@ logs <app> [-h] [-t] [-n num] [-q] [-p process] # Display recent log output
|
||||
logs:failed [--all|<app>] # Shows the last failed deploy logs
|
||||
logs:report [<app>] [<flag>] # Displays a logs report for one or more apps
|
||||
logs:set [--global|<app>] <key> <value> # Set or clear a logs property for an app
|
||||
logs:vector-logs # Tail the logs of the vector container
|
||||
logs:vector-logs [--num num] [--tail] # Display vector log output
|
||||
logs:vector-start # Start the vector logging container
|
||||
logs:vector-stop # Stop the vector logging container
|
||||
```
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -95,8 +96,15 @@ func LogVerboseQuietContainerLogs(containerID string) {
|
||||
}
|
||||
|
||||
// LogVerboseQuietContainerLogsTail is the verbose log formatter for container logs with tail mode enabled
|
||||
func LogVerboseQuietContainerLogsTail(containerID string) {
|
||||
sc := NewShellCmdWithArgs(DockerBin(), "container", "logs", containerID, "--follow", "--tail", "10")
|
||||
func LogVerboseQuietContainerLogsTail(containerID string, lines int, tail bool) {
|
||||
args := []string{"container", "logs", containerID}
|
||||
if lines > 0 {
|
||||
args = append(args, "--tail", strconv.Itoa(lines))
|
||||
}
|
||||
if tail {
|
||||
args = append(args, "--follow")
|
||||
}
|
||||
sc := NewShellCmdWithArgs(DockerBin(), args...)
|
||||
stdout, _ := sc.Command.StdoutPipe()
|
||||
sc.Command.Start()
|
||||
|
||||
@@ -104,7 +112,7 @@ func LogVerboseQuietContainerLogsTail(containerID string) {
|
||||
scanner.Split(bufio.ScanLines)
|
||||
for scanner.Scan() {
|
||||
m := scanner.Text()
|
||||
fmt.Println(m)
|
||||
LogVerboseQuiet(m)
|
||||
}
|
||||
sc.Command.Wait()
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ Additional commands:`
|
||||
logs:failed [--all|<app>], Shows the last failed deploy logs
|
||||
logs:report [<app>] [<flag>], Displays a logs report for one or more apps
|
||||
logs:set [--global|<app>] <key> <value>, Set or clear a logs property for an app
|
||||
logs:vector-logs, Tail the logs of the vector container
|
||||
logs:vector-logs [--num num] [--tail], Display vector log output
|
||||
logs:vector-start, Start the vector logging container
|
||||
logs:vector-stop, Stop the vector logging container
|
||||
`
|
||||
|
||||
@@ -47,8 +47,10 @@ func main() {
|
||||
err = logs.CommandSet(appName, property, value)
|
||||
case "vector-logs":
|
||||
args := flag.NewFlagSet("logs:vector-logs", flag.ExitOnError)
|
||||
num := args.Int("num", 100, "the number of lines to display")
|
||||
tail := args.Bool("tail", false, "continually stream logs")
|
||||
args.Parse(os.Args[2:])
|
||||
err = logs.CommandVectorLogs()
|
||||
err = logs.CommandVectorLogs(*num, *tail)
|
||||
case "vector-start":
|
||||
args := flag.NewFlagSet("logs:vector-start", flag.ExitOnError)
|
||||
vectorImage := args.String("vector-image", logs.VectorImage, "--vector-image: the name of the docker image to run for vector")
|
||||
|
||||
@@ -85,7 +85,7 @@ func CommandSet(appName string, property string, value string) error {
|
||||
}
|
||||
|
||||
// CommandVectorLogs tails the log output for the vector container
|
||||
func CommandVectorLogs() error {
|
||||
func CommandVectorLogs(lines int, tail bool) error {
|
||||
if !common.ContainerExists(vectorContainerName) {
|
||||
return errors.New("Vector container does not exist")
|
||||
}
|
||||
@@ -95,7 +95,7 @@ func CommandVectorLogs() error {
|
||||
}
|
||||
|
||||
common.LogInfo1Quiet("Tailing vector container logs")
|
||||
common.LogVerboseQuietContainerLogsTail(vectorContainerName)
|
||||
common.LogVerboseQuietContainerLogsTail(vectorContainerName, lines, tail)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user