* test logging * test impl for logging * implemented "live logging", restyle templates dropdown * moved extract audio to downloadDialog, fixed labels * code refactoring * buffering logs
30 lines
517 B
Go
30 lines
517 B
Go
package logging
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/reactivex/rxgo/v2"
|
|
)
|
|
|
|
var (
|
|
logsChan = make(chan rxgo.Item, 100)
|
|
logsObservable = rxgo.
|
|
FromChannel(logsChan, rxgo.WithBackPressureStrategy(rxgo.Drop)).
|
|
BufferWithTime(rxgo.WithDuration(time.Millisecond * 500))
|
|
)
|
|
|
|
type ObservableLogger struct{}
|
|
|
|
func NewObservableLogger() *ObservableLogger {
|
|
return &ObservableLogger{}
|
|
}
|
|
|
|
func (o *ObservableLogger) Write(p []byte) (n int, err error) {
|
|
logsChan <- rxgo.Of(string(p))
|
|
|
|
n = len(p)
|
|
err = nil
|
|
|
|
return
|
|
}
|