Files
olcrtc/internal/logger/logger.go
2026-05-10 23:02:00 +03:00

65 lines
1.3 KiB
Go

// Package logger provides a simple leveled logging interface.
package logger
import (
"log"
"sync/atomic"
)
// verboseEnabled controls whether verbose and debug logging is enabled.
var verboseEnabled atomic.Bool
// SetVerbose enables or disables verbose/debug logging.
func SetVerbose(enabled bool) {
verboseEnabled.Store(enabled)
}
// IsVerbose returns true if verbose logging is enabled.
func IsVerbose() bool {
return verboseEnabled.Load()
}
// Info logs an informational message.
func Info(v ...any) {
log.Print(v...)
}
// Infof logs a formatted informational message.
func Infof(format string, v ...any) {
log.Printf(format, v...)
}
// Warn logs a warning message.
func Warn(v ...any) {
log.Print(v...)
}
// Warnf logs a formatted warning message.
func Warnf(format string, v ...any) {
log.Printf(format, v...)
}
// Error logs an error message.
func Error(v ...any) {
log.Print(v...)
}
// Errorf logs a formatted error message.
func Errorf(format string, v ...any) {
log.Printf(format, v...)
}
// Verbosef logs a formatted message if verbose logging is enabled.
func Verbosef(format string, v ...any) {
if verboseEnabled.Load() {
log.Printf(format, v...)
}
}
// Debugf logs a formatted message if verbose logging is enabled.
func Debugf(format string, v ...any) {
if verboseEnabled.Load() {
log.Printf(format, v...)
}
}