MCPcopy Create free account
hub / github.com/Hidden-Node/GooseRelayVPN-AndroidClient / Write

Method Write

cmd/client/main.go:29–72  ·  view source on GitHub ↗
(p []byte)

Source from the content-addressed store, hash-verified

27}
28
29func (w *clientLogWriter) Write(p []byte) (int, error) {
30 raw := strings.TrimRight(string(p), "\r\n")
31 if raw == "" {
32 _, err := w.out.Write(p)
33 return len(p), err
34 }
35
36 module := "client"
37 msg := raw
38 if strings.HasPrefix(raw, "[") {
39 if idx := strings.Index(raw, "]"); idx > 1 {
40 module = strings.ToUpper(strings.TrimSpace(raw[1:idx]))
41 msg = strings.TrimSpace(raw[idx+1:])
42 }
43 }
44 module = strings.ToUpper(module)
45
46 level := "INFO"
47 lower := strings.ToLower(msg)
48 if strings.Contains(lower, "fatal") || strings.Contains(lower, "invalid") || strings.Contains(lower, "required") {
49 level = "ERROR"
50 } else if strings.Contains(lower, "timeout") || strings.Contains(lower, "non-ok") || strings.Contains(lower, "failed") || strings.Contains(lower, "shutting down") {
51 level = "WARN"
52 }
53
54 ts := time.Now().Format("15:04:05")
55 line := fmt.Sprintf("%s %-7s %-7s %s\n", ts, module, level, msg)
56
57 if !w.useColor {
58 _, err := io.WriteString(w.out, line)
59 return len(p), err
60 }
61
62 levelColor := "\x1b[36m" // cyan
63 if level == "WARN" {
64 levelColor = "\x1b[33m" // yellow
65 }
66 if level == "ERROR" {
67 levelColor = "\x1b[31m" // red
68 }
69 colored := fmt.Sprintf("%s \x1b[35m%-7s\x1b[0m %s%-7s\x1b[0m %s\n", ts, module, levelColor, level, msg)
70 _, err := io.WriteString(w.out, colored)
71 return len(p), err
72}
73
74func setupClientLogging() {
75 log.SetFlags(0)

Callers 2

addDiagnosticsSummaryFunction · 0.45
addRedactedConfigFunction · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected