33 lines
445 B
Go
33 lines
445 B
Go
package logger
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"sync"
|
|
)
|
|
|
|
type Logger struct {
|
|
verbose bool
|
|
writer *bufio.Writer
|
|
mu sync.Mutex
|
|
}
|
|
|
|
func New(verbose bool) *Logger {
|
|
return &Logger{
|
|
verbose: verbose,
|
|
writer: bufio.NewWriter(os.Stdout),
|
|
}
|
|
}
|
|
|
|
func (l *Logger) Printf(format string, args ...interface{}) {
|
|
if !l.verbose {
|
|
return
|
|
}
|
|
|
|
l.mu.Lock()
|
|
_, _ = fmt.Fprintf(l.writer, format, args...)
|
|
_ = l.writer.Flush()
|
|
l.mu.Unlock()
|
|
}
|