mirror of
https://github.com/containers/podman.git
synced 2025-10-18 03:33:32 +08:00
logs: adjust handling around partial log messages
In libpod/logs.LogLine.Write(), don't write a newline to stdout/stderr when the log message is only part of a line. In libpod.ConmonOCIRuntime.HTTPAttach(), don't send a newline over the HTTP connection when the log message is only part of a line. In pkg/api/handlers/compat.LogsFromContainer(), don't send a newline over the HTTP connection when the log message is only part of a line, and don't make doing so conditional on whether or not the client used the docker or podman endpoint. In pkg/domain/infra/tunnel.ContainerEngine.ContainerLogs(), don't add our own newline to log messages, since they already come through from the server when they need to. Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
This commit is contained in:
@ -251,11 +251,19 @@ func (l *LogLine) Write(stdout io.Writer, stderr io.Writer, logOpts *LogOptions)
|
||||
switch l.Device {
|
||||
case "stdout":
|
||||
if stdout != nil {
|
||||
fmt.Fprintln(stdout, l.String(logOpts))
|
||||
if l.Partial() {
|
||||
fmt.Fprint(stdout, l.String(logOpts))
|
||||
} else {
|
||||
fmt.Fprintln(stdout, l.String(logOpts))
|
||||
}
|
||||
}
|
||||
case "stderr":
|
||||
if stderr != nil {
|
||||
fmt.Fprintln(stderr, l.String(logOpts))
|
||||
if l.Partial() {
|
||||
fmt.Fprint(stderr, l.String(logOpts))
|
||||
} else {
|
||||
fmt.Fprintln(stderr, l.String(logOpts))
|
||||
}
|
||||
}
|
||||
default:
|
||||
// Warn the user if the device type does not match. Most likely the file is corrupted.
|
||||
|
Reference in New Issue
Block a user