From 717a923dff562ab58ab200e87e1692992e7db61f Mon Sep 17 00:00:00 2001 From: Sergey Chubaryan Date: Sun, 25 Aug 2024 03:50:55 +0300 Subject: [PATCH] add some todo's --- src/app.go | 2 +- src/charsets/charsets.go | 1 + src/logger/bufio_wrapper.go | 1 + src/logger/new.go | 6 ++++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/app.go b/src/app.go index e495605..543922e 100644 --- a/src/app.go +++ b/src/app.go @@ -39,7 +39,7 @@ func (a *App) Run(p RunParams) { ctx = p.Ctx osArgs = p.OsArgs _ = p.EnvVars - debugMode = false // TODO: replace to flag from conf + debugMode = false // TODO: replace with flag from conf ) //----------------------------------------- diff --git a/src/charsets/charsets.go b/src/charsets/charsets.go index 1632d02..5d70492 100644 --- a/src/charsets/charsets.go +++ b/src/charsets/charsets.go @@ -120,6 +120,7 @@ func (c charsetUnion) RandomRune(r RandInt) rune { } func (c charsetUnion) RandomString(r RandInt, size int) string { + // TODO: improve distribution builder := strings.Builder{} for i := 0; i < size; i++ { index := r.Int() % (len(c.charsets) - 1) diff --git a/src/logger/bufio_wrapper.go b/src/logger/bufio_wrapper.go index 2f3353e..8156cd2 100644 --- a/src/logger/bufio_wrapper.go +++ b/src/logger/bufio_wrapper.go @@ -11,6 +11,7 @@ type bufioWrapper struct { } func (b *bufioWrapper) Write(p []byte) (nn int, err error) { + // TODO: try replace mutex, improve logging perfomance b.m.RLock() defer b.m.RUnlock() diff --git a/src/logger/new.go b/src/logger/new.go index d3179aa..2840358 100644 --- a/src/logger/new.go +++ b/src/logger/new.go @@ -26,6 +26,7 @@ type NewLoggerOpts struct { } func New(opts NewLoggerOpts) (Logger, error) { + // TODO: pass output streams from opts writers := []io.Writer{} writers = append(writers, os.Stderr) @@ -37,14 +38,19 @@ func New(opts NewLoggerOpts) (Logger, error) { writers = append(writers, file) } + // TODO: more log levels level := zerolog.TraceLevel if opts.Debug { level = zerolog.DebugLevel } + // TODO: move to wrapper, determine optimal buffer size writer := bufio.NewWriterSize(io.MultiWriter(writers...), 8*1024) wrapper := &bufioWrapper{writer, &sync.RWMutex{}} + + // Periodically flush buffer go func() { + // TODO: add cooldown if flush was triggered by overfow tmr := time.NewTicker(500 * time.Millisecond) defer tmr.Stop()