Skip to content

Commit fd3b2d7

Browse files
committed
refactor: replace logWriter with ChanWriter for improved logging mechanism
1 parent d68fc7a commit fd3b2d7

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

hub.go

+9-8
Original file line numberDiff line numberDiff line change
@@ -282,20 +282,21 @@ func (h *hub) checkCmd(m []byte) {
282282
}
283283
}
284284

285-
type logWriter struct {
286-
onWrite func([]byte)
285+
// ChanWriter is a simple io.Writer that sends data to a channel.
286+
type ChanWriter struct {
287+
Ch chan<- []byte
288+
}
289+
290+
func (u *ChanWriter) Write(p []byte) (n int, err error) {
291+
u.Ch <- p
292+
return len(p), nil
287293
}
288294

289295
func (h *hub) logAction(sl string) {
290296
if strings.HasPrefix(sl, "log on") {
291297
*logDump = "on"
292298

293-
logWriter := logWriter{}
294-
logWriter.onWrite = func(p []byte) {
295-
h.broadcastSys <- p
296-
}
297-
298-
multiWriter := io.MultiWriter(&logWriter, os.Stderr)
299+
multiWriter := io.MultiWriter(&ChanWriter{Ch: h.broadcastSys}, os.Stderr)
299300
log.SetOutput(multiWriter)
300301
} else if strings.HasPrefix(sl, "log off") {
301302
*logDump = "off"

0 commit comments

Comments
 (0)