Browse code

daemon/logs: lower allocations in loop

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)

unclejack authored on 2014/09/18 22:29:19
Showing 1 changed files
... ...
@@ -88,9 +88,8 @@ func (daemon *Daemon) ContainerLogs(job *engine.Job) engine.Status {
88 88
 				cLog = tmp
89 89
 			}
90 90
 			dec := json.NewDecoder(cLog)
91
+			l := &jsonlog.JSONLog{}
91 92
 			for {
92
-				l := &jsonlog.JSONLog{}
93
-
94 93
 				if err := dec.Decode(l); err == io.EOF {
95 94
 					break
96 95
 				} else if err != nil {
... ...
@@ -102,11 +101,12 @@ func (daemon *Daemon) ContainerLogs(job *engine.Job) engine.Status {
102 102
 					logLine = fmt.Sprintf("%s %s", l.Created.Format(format), logLine)
103 103
 				}
104 104
 				if l.Stream == "stdout" && stdout {
105
-					fmt.Fprintf(job.Stdout, "%s", logLine)
105
+					io.WriteString(job.Stdout, logLine)
106 106
 				}
107 107
 				if l.Stream == "stderr" && stderr {
108
-					fmt.Fprintf(job.Stderr, "%s", logLine)
108
+					io.WriteString(job.Stderr, logLine)
109 109
 				}
110
+				l.Reset()
110 111
 			}
111 112
 		}
112 113
 	}