summaryrefslogtreecommitdiff
path: root/cmd/podman/logs.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/podman/logs.go')
-rw-r--r--cmd/podman/logs.go93
1 files changed, 0 insertions, 93 deletions
diff --git a/cmd/podman/logs.go b/cmd/podman/logs.go
deleted file mode 100644
index 0a86fa128..000000000
--- a/cmd/podman/logs.go
+++ /dev/null
@@ -1,93 +0,0 @@
-package main
-
-import (
- "time"
-
- "github.com/containers/libpod/cmd/podman/cliconfig"
- "github.com/containers/libpod/libpod/logs"
- "github.com/containers/libpod/pkg/adapter"
- "github.com/containers/libpod/pkg/util"
- "github.com/pkg/errors"
- "github.com/spf13/cobra"
-)
-
-var (
- logsCommand cliconfig.LogsValues
- logsDescription = `Retrieves logs for one or more containers.
-
- This does not guarantee execution order when combined with podman run (i.e. your run may not have generated any logs at the time you execute podman logs).
-`
- _logsCommand = &cobra.Command{
- Use: "logs [flags] CONTAINER [CONTAINER...]",
- Short: "Fetch the logs of a container",
- Long: logsDescription,
- RunE: func(cmd *cobra.Command, args []string) error {
- logsCommand.InputArgs = args
- logsCommand.GlobalFlags = MainGlobalOpts
- logsCommand.Remote = remoteclient
- return logsCmd(&logsCommand)
- },
- Args: func(cmd *cobra.Command, args []string) error {
- if len(args) > 0 && logsCommand.Latest {
- return errors.New("no containers can be specified when using 'latest'")
- }
- if !logsCommand.Latest && len(args) < 1 {
- return errors.New("specify at least one container name or ID to log")
- }
- return nil
- },
- Example: `podman logs ctrID
- podman logs --names ctrID1 ctrID2
- podman logs --tail 2 mywebserver
- podman logs --follow=true --since 10m ctrID
- podman logs mywebserver mydbserver`,
- }
-)
-
-func init() {
- logsCommand.Command = _logsCommand
- logsCommand.SetHelpTemplate(HelpTemplate())
- logsCommand.SetUsageTemplate(UsageTemplate())
- flags := logsCommand.Flags()
- flags.BoolVar(&logsCommand.Details, "details", false, "Show extra details provided to the logs")
- flags.BoolVarP(&logsCommand.Follow, "follow", "f", false, "Follow log output. The default is false")
- flags.BoolVarP(&logsCommand.Latest, "latest", "l", false, "Act on the latest container podman is aware of")
- flags.StringVar(&logsCommand.Since, "since", "", "Show logs since TIMESTAMP")
- flags.Int64Var(&logsCommand.Tail, "tail", -1, "Output the specified number of LINES at the end of the logs. Defaults to -1, which prints all lines")
- flags.BoolVarP(&logsCommand.Timestamps, "timestamps", "t", false, "Output the timestamps in the log")
- flags.BoolVarP(&logsCommand.UseName, "names", "n", false, "Output the container name in the log")
- markFlagHidden(flags, "details")
- flags.SetInterspersed(false)
-
- markFlagHiddenForRemoteClient("latest", flags)
-}
-
-func logsCmd(c *cliconfig.LogsValues) error {
- var err error
-
- runtime, err := adapter.GetRuntime(getContext(), &c.PodmanCommand)
- if err != nil {
- return errors.Wrapf(err, "could not get runtime")
- }
- defer runtime.DeferredShutdown(false)
-
- sinceTime := time.Time{}
- if c.Flag("since").Changed {
- // parse time, error out if something is wrong
- since, err := util.ParseInputTime(c.Since)
- if err != nil {
- return errors.Wrapf(err, "could not parse time: %q", c.Since)
- }
- sinceTime = since
- }
-
- options := &logs.LogOptions{
- Details: c.Details,
- Follow: c.Follow,
- Since: sinceTime,
- Tail: c.Tail,
- Timestamps: c.Timestamps,
- UseName: c.UseName,
- }
- return runtime.Log(c, options)
-}