daemon/logger/jsonfilelog: avoid some allocations

Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
Upstream-commit: 132da3f036287896cb3ba9f9f2573ad36bbb69cc
Component: engine
This commit is contained in:
unclejack
2015-04-02 18:33:23 +03:00
parent 088a52cbda
commit 2ebb5f4928
@@ -7,6 +7,7 @@ import (
"github.com/docker/docker/daemon/logger"
"github.com/docker/docker/pkg/jsonlog"
"github.com/docker/docker/pkg/timeutils"
)
// JSONFileLogger is Logger implementation for default docker logging:
@@ -33,7 +34,11 @@ func New(filename string) (logger.Logger, error) {
func (l *JSONFileLogger) Log(msg *logger.Message) error {
l.mu.Lock()
defer l.mu.Unlock()
err := (&jsonlog.JSONLog{Log: string(msg.Line) + "\n", Stream: msg.Source, Created: msg.Timestamp}).MarshalJSONBuf(l.buf)
timestamp, err := timeutils.FastMarshalJSON(msg.Timestamp)
if err != nil {
return err
}
err = (&jsonlog.JSONLogBytes{Log: append(msg.Line, '\n'), Stream: msg.Source, Created: timestamp}).MarshalJSONBuf(l.buf)
if err != nil {
return err
}