0b4b0a7b5d
Docker daemon has a 16K buffer for log messages. If a message length exceeds 16K, it should be split by the logger and merged at the endpoint. This change adds `PartialLogMetaData` struct for enhanced partial support - LastPartial (bool) : indicates if this is the last of all partials. - ID (string) : unique 32 bit ID. ID is same across all partials. - Ordinal (int starts at 1) : indicates the position of msg in the series of partials. Also, the timestamps across partials in the same. Signed-off-by: Anusha Ragunathan <anusha.ragunathan@docker.com>
21 lines
448 B
Go
21 lines
448 B
Go
package logger // import "github.com/docker/docker/daemon/logger"
|
|
|
|
import (
|
|
"github.com/docker/docker/api/types/backend"
|
|
)
|
|
|
|
func (m *Message) copy() *Message {
|
|
msg := &Message{
|
|
Source: m.Source,
|
|
PLogMetaData: m.PLogMetaData,
|
|
Timestamp: m.Timestamp,
|
|
}
|
|
|
|
if m.Attrs != nil {
|
|
msg.Attrs = make([]backend.LogAttr, len(m.Attrs))
|
|
copy(msg.Attrs, m.Attrs)
|
|
}
|
|
|
|
msg.Line = append(make([]byte, 0, len(m.Line)), m.Line...)
|
|
return msg
|
|
}
|