@@ -6,96 +6,58 @@ import (
6
6
)
7
7
8
8
var (
9
- logStrings []string
10
- logDebug * log.Logger
11
- logError * log.Logger
12
- logInfo * log.Logger
9
+ LogChan chan string
10
+
11
+ logDebug * log.Logger
12
+ logError * log.Logger
13
+ logInfo * log.Logger
13
14
14
15
vv104loggerDebug vv104logger
15
16
vv104loggerError vv104logger
16
17
vv104loggerInfo vv104logger
17
- // e.g. for use with GUI: GUI can set its update function for the text box here
18
- LogCallBack func ()
19
18
)
20
19
21
20
type vv104logger struct {
22
- logToBuffer bool
21
+ logToChan bool
23
22
logToStdOut bool
24
- logString string
25
- }
26
-
27
- func addLogEntry (s string ) {
28
- logStrings = append (logStrings , s )
29
- }
30
-
31
- // API to read from logs (concurrently?)
32
- func ReadLogEntry () string {
33
- var s string = ""
34
- for _ , logString := range logStrings {
35
- s += logString
36
- logStrings = logStrings [1 :]
37
-
38
- }
39
- return s
40
23
}
41
24
42
25
func (vvlog vv104logger ) Write (p []byte ) (n int , err error ) {
43
26
44
- if vvlog .logToBuffer {
45
- addLogEntry (string (p ))
27
+ if vvlog .logToChan {
28
+ // addLogEntry(string(p))
29
+ LogChan <- string (p )
46
30
}
47
31
48
32
if vvlog .logToStdOut {
49
33
n , err = fmt .Print (string (p ))
50
34
}
51
35
52
- if LogCallBack != nil {
53
- LogCallBack ()
54
- }
55
-
56
36
return n , err
57
37
}
58
38
39
+ func NewLogChan () chan string {
40
+ LogChan = make (chan string , 50 )
41
+ return LogChan
42
+ }
43
+
59
44
func initLogger (config Config ) {
60
45
61
46
vv104loggerDebug = vv104logger {
62
- logToBuffer : config .LogToBuffer ,
47
+ logToChan : config .LogToBuffer ,
63
48
logToStdOut : config .LogToStdOut ,
64
49
}
65
50
vv104loggerError = vv104logger {
66
- logToBuffer : config .LogToBuffer ,
51
+ logToChan : config .LogToBuffer ,
67
52
logToStdOut : config .LogToStdOut ,
68
53
}
69
54
vv104loggerInfo = vv104logger {
70
- logToBuffer : config .LogToBuffer ,
55
+ logToChan : config .LogToBuffer ,
71
56
logToStdOut : config .LogToStdOut ,
72
57
}
73
58
74
- // var output io.Writer
75
- // // var multiOutput io.MultiWriter() todo?
76
-
77
- // if config.LogToBuffer {
78
- // output = &LogBuf
79
- // } else {
80
- // output = os.Stdout
81
- // }
82
-
83
- // logDebug = log.New(output, "🪲 ", log.Ltime|log.Lshortfile)
84
- // logError = log.New(output, "❌ ", log.Ltime|log.Lshortfile)
85
- // logInfo = log.New(output, "🥨 ", log.Ltime)
86
-
87
59
logDebug = log .New (vv104loggerDebug , "Debug: " , log .Ltime | log .Lshortfile )
88
60
logError = log .New (vv104loggerError , "ERROR: " , log .Ltime | log .Lshortfile )
89
61
logInfo = log .New (vv104loggerInfo , "" , log .Ltime )
90
62
91
63
}
92
-
93
- // func logInfof(v any) {
94
- // logDebug.Println(v)
95
-
96
- // // call callback function
97
- // LogCallBack()
98
-
99
- // }
100
-
101
- // str, err := InfoLogBuf.ReadString(0x0a) // 0x0a = newline
0 commit comments