Bläddra i källkod

utils.Debugf -> log.Printf, move jsonlog to own package.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
Erik Hollensbe 11 år sedan
förälder
incheckning
5cdb9c8aca
3 ändrade filer med 50 tillägg och 42 borttagningar
  1. 5 4
      pkg/broadcastwriter/broadcastwriter.go
  2. 45 0
      pkg/jsonlog/jsonlog.go
  3. 0 38
      utils/utils.go

+ 5 - 4
pkg/broadcastwriter/broadcastwriter.go

@@ -4,10 +4,11 @@ import (
 	"bytes"
 	"encoding/json"
 	"io"
+	"log"
 	"sync"
 	"time"
 
-	"github.com/docker/docker/utils"
+	"github.com/docker/docker/pkg/jsonlog"
 )
 
 // BroadcastWriter accumulate multiple io.WriteCloser by stream.
@@ -19,7 +20,7 @@ type BroadcastWriter struct {
 
 // AddWriter adds new io.WriteCloser for stream.
 // If stream is "", then all writes proceed as is. Otherwise every line from
-// input will be packed to serialized utils.JSONLog.
+// input will be packed to serialized jsonlog.JSONLog.
 func (w *BroadcastWriter) AddWriter(writer io.WriteCloser, stream string) {
 	w.Lock()
 	if _, ok := w.streams[stream]; !ok {
@@ -53,9 +54,9 @@ func (w *BroadcastWriter) Write(p []byte) (n int, err error) {
 			if stream == "" {
 				continue
 			}
-			b, err := json.Marshal(utils.JSONLog{Log: line, Stream: stream, Created: created})
+			b, err := json.Marshal(jsonlog.JSONLog{Log: line, Stream: stream, Created: created})
 			if err != nil {
-				utils.Errorf("Error making JSON log line: %s", err)
+				log.Printf("Error making JSON log line: %s", err)
 				continue
 			}
 			b = append(b, '\n')

+ 45 - 0
pkg/jsonlog/jsonlog.go

@@ -0,0 +1,45 @@
+package jsonlog
+
+import (
+	"encoding/json"
+	"fmt"
+	"io"
+	"log"
+	"time"
+)
+
+type JSONLog struct {
+	Log     string    `json:"log,omitempty"`
+	Stream  string    `json:"stream,omitempty"`
+	Created time.Time `json:"time"`
+}
+
+func (jl *JSONLog) Format(format string) (string, error) {
+	if format == "" {
+		return jl.Log, nil
+	}
+	if format == "json" {
+		m, err := json.Marshal(jl)
+		return string(m), err
+	}
+	return fmt.Sprintf("[%s] %s", jl.Created.Format(format), jl.Log), nil
+}
+
+func WriteLog(src io.Reader, dst io.WriteCloser, format string) error {
+	dec := json.NewDecoder(src)
+	for {
+		l := &JSONLog{}
+
+		if err := dec.Decode(l); err == io.EOF {
+			return nil
+		} else if err != nil {
+			log.Printf("Error streaming logs: %s", err)
+			return err
+		}
+		line, err := l.Format(format)
+		if err != nil {
+			return err
+		}
+		fmt.Fprintf(dst, "%s", line)
+	}
+}

+ 0 - 38
utils/utils.go

@@ -6,7 +6,6 @@ import (
 	"crypto/sha1"
 	"crypto/sha256"
 	"encoding/hex"
-	"encoding/json"
 	"fmt"
 	"io"
 	"io/ioutil"
@@ -19,7 +18,6 @@ import (
 	"strings"
 	"sync"
 	"syscall"
-	"time"
 
 	"github.com/docker/docker/dockerversion"
 )
@@ -264,42 +262,6 @@ func (r *bufReader) Close() error {
 	return closer.Close()
 }
 
-type JSONLog struct {
-	Log     string    `json:"log,omitempty"`
-	Stream  string    `json:"stream,omitempty"`
-	Created time.Time `json:"time"`
-}
-
-func (jl *JSONLog) Format(format string) (string, error) {
-	if format == "" {
-		return jl.Log, nil
-	}
-	if format == "json" {
-		m, err := json.Marshal(jl)
-		return string(m), err
-	}
-	return fmt.Sprintf("[%s] %s", jl.Created.Format(format), jl.Log), nil
-}
-
-func WriteLog(src io.Reader, dst io.WriteCloser, format string) error {
-	dec := json.NewDecoder(src)
-	for {
-		l := &JSONLog{}
-
-		if err := dec.Decode(l); err == io.EOF {
-			return nil
-		} else if err != nil {
-			Errorf("Error streaming logs: %s", err)
-			return err
-		}
-		line, err := l.Format(format)
-		if err != nil {
-			return err
-		}
-		fmt.Fprintf(dst, "%s", line)
-	}
-}
-
 func GetTotalUsedFds() int {
 	if fds, err := ioutil.ReadDir(fmt.Sprintf("/proc/%d/fd", os.Getpid())); err != nil {
 		Errorf("Error opening /proc/%d/fd: %s", os.Getpid(), err)