diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-03-16 04:21:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-16 04:21:32 -0700 |
commit | 97fb49571828b9d206ff284ed18448f96ae877e9 (patch) | |
tree | b1b5c7ecb963a4bc012bf0f65c287862644938b3 /pkg/adapter/containers.go | |
parent | 3384bd87c85950c245524682efa2a0f124097122 (diff) | |
parent | a0c35c394bb95d15aeed8fcc467cb110f67fa6db (diff) | |
download | podman-97fb49571828b9d206ff284ed18448f96ae877e9.tar.gz podman-97fb49571828b9d206ff284ed18448f96ae877e9.tar.bz2 podman-97fb49571828b9d206ff284ed18448f96ae877e9.zip |
Merge pull request #2620 from baude/multilogs
display logs for multiple containers at the same time
Diffstat (limited to 'pkg/adapter/containers.go')
-rw-r--r-- | pkg/adapter/containers.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/pkg/adapter/containers.go b/pkg/adapter/containers.go index 756369196..932d209cd 100644 --- a/pkg/adapter/containers.go +++ b/pkg/adapter/containers.go @@ -4,7 +4,9 @@ package adapter import ( "context" + "fmt" "strconv" + "sync" "syscall" "time" @@ -127,3 +129,28 @@ func (r *LocalRuntime) WaitOnContainers(ctx context.Context, cli *cliconfig.Wait } return ok, failures, err } + +// Log logs one or more containers +func (r *LocalRuntime) Log(c *cliconfig.LogsValues, options *libpod.LogOptions) error { + var wg sync.WaitGroup + options.WaitGroup = &wg + if len(c.InputArgs) > 1 { + options.Multi = true + } + logChannel := make(chan *libpod.LogLine, int(c.Tail)*len(c.InputArgs)+1) + containers, err := shortcuts.GetContainersByContext(false, c.Latest, c.InputArgs, r.Runtime) + if err != nil { + return err + } + if err := r.Runtime.Log(containers, options, logChannel); err != nil { + return err + } + go func() { + wg.Wait() + close(logChannel) + }() + for line := range logChannel { + fmt.Println(line.String(options)) + } + return nil +} |