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() }