Merge pull request #1323 from docker/timestamp

introduce logs --timestamp
This commit is contained in:
Nicolas De loof 2021-02-18 19:41:05 +01:00 committed by GitHub
commit 32fdd08485
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 8 deletions

View File

@ -178,9 +178,10 @@ type ServiceStatus struct {
// LogOptions defines optional parameters for the `Log` API
type LogOptions struct {
Services []string
Tail string
Follow bool
Services []string
Tail string
Follow bool
Timestamps bool
}
const (

View File

@ -31,10 +31,11 @@ import (
type logsOptions struct {
*projectOptions
composeOptions
follow bool
tail string
noColor bool
noPrefix bool
follow bool
tail string
noColor bool
noPrefix bool
timestamps bool
}
func logsCommand(p *projectOptions, contextType string) *cobra.Command {
@ -52,6 +53,7 @@ func logsCommand(p *projectOptions, contextType string) *cobra.Command {
flags.BoolVar(&opts.follow, "follow", false, "Follow log output.")
flags.BoolVar(&opts.noColor, "no-color", false, "Produce monochrome output.")
flags.BoolVar(&opts.noPrefix, "no-log-prefix", false, "Don't print prefix in logs.")
flags.BoolVarP(&opts.timestamps, "timestamps", "t", false, "Show timestamps.")
if contextType == store.DefaultContextType {
flags.StringVar(&opts.tail, "tail", "all", "Number of lines to show from the end of the logs for each container.")
@ -74,5 +76,6 @@ func runLogs(ctx context.Context, opts logsOptions, services []string) error {
Services: services,
Follow: opts.follow,
Tail: opts.tail,
Timestamps: opts.timestamps,
})
}

View File

@ -68,6 +68,7 @@ func (s *composeService) Logs(ctx context.Context, projectName string, consumer
ShowStderr: true,
Follow: options.Follow,
Tail: options.Tail,
Timestamps: options.Timestamps,
})
defer r.Close() // nolint errcheck
@ -76,7 +77,7 @@ func (s *composeService) Logs(ctx context.Context, projectName string, consumer
}
name := getContainerNameWithoutProject(c)
w := utils.GetWriter(name, service, c.ID, func(event compose.ContainerEvent) {
consumer.Log(event.Service, event.Name, event.Line)
consumer.Log(name, event.Name, event.Line)
})
if container.Config.Tty {
_, err = io.Copy(w, r)