Added setting for LogLevel

This commit is contained in:
Pijus Kamandulis
2025-01-09 21:07:41 +02:00
parent c2c9dc03b3
commit 8b8b087aab
14 changed files with 200 additions and 84 deletions

View File

@@ -5,36 +5,100 @@ import (
"os"
)
var EnableDebugOutput = false
type LogLevelType int
var (
LogLevelDebug LogLevelType = 0
LogLevelInfo LogLevelType = 1
LogLevelError LogLevelType = 2
LogLevelSilent LogLevelType = 10
)
type LogWriter struct {
WriterLevel LogLevelType
}
var LogLevel = LogLevelInfo
var DebugLogger = log.New(os.Stdout, "", log.Ldate|log.Ltime|log.Lshortfile)
var InfoLogger = log.New(os.Stdout, "", log.Ldate|log.Ltime)
var ErrorLogger = log.New(os.Stderr, "", log.Ldate|log.Ltime|log.Lshortfile)
func Debug(v ...any) {
if EnableDebugOutput {
func DebugLn(v ...any) {
if LogLevel <= LogLevelDebug {
DebugLogger.Println(v...)
}
}
func Debug(v ...any) {
if LogLevel <= LogLevelDebug {
DebugLogger.Print(v...)
}
}
func Debugf(format string, v ...any) {
if EnableDebugOutput {
if LogLevel <= LogLevelDebug {
DebugLogger.Printf(format, v...)
}
}
func InfoLn(v ...any) {
if LogLevel <= LogLevelInfo {
InfoLogger.Println(v...)
}
}
func Info(v ...any) {
InfoLogger.Println(v...)
if LogLevel <= LogLevelInfo {
InfoLogger.Print(v...)
}
}
func Infof(format string, v ...any) {
InfoLogger.Printf(format, v...)
if LogLevel <= LogLevelInfo {
InfoLogger.Printf(format, v...)
}
}
func ErrorLn(v ...any) {
if LogLevel <= LogLevelError {
ErrorLogger.Println(v...)
}
}
func Error(v ...any) {
ErrorLogger.Println(v...)
if LogLevel <= LogLevelError {
ErrorLogger.Print(v...)
}
}
func Errorf(format string, v ...any) {
ErrorLogger.Printf(format, v...)
if LogLevel <= LogLevelError {
ErrorLogger.Printf(format, v...)
}
}
func (lw *LogWriter) Write(p []byte) (n int, err error) {
switch lw.WriterLevel {
case LogLevelDebug:
Debug(string(p))
case LogLevelInfo:
Info(string(p))
case LogLevelError:
Error(string(p))
}
return len(p), nil
}
func ErrorWriter() *LogWriter {
return &LogWriter{WriterLevel: LogLevelError}
}
func InfoWriter() *LogWriter {
return &LogWriter{WriterLevel: LogLevelInfo}
}
func DebugWriter() *LogWriter {
return &LogWriter{WriterLevel: LogLevelDebug}
}

View File

@@ -23,7 +23,7 @@ func (r *DataRepository) InitializeRepository() {
}
if stat.IsDir() {
logger.Error("Argument '-Persist' must be a path to file, not a directory.")
logger.ErrorLn("Argument '-Persist' must be a path to file, not a directory.")
os.Exit(1)
}
@@ -60,7 +60,7 @@ func (r *DataRepository) LoadStateJSON(jsonData string) error {
r.ensureStoreStateNoNullReferences()
logger.Info("Loaded state:")
logger.InfoLn("Loaded state:")
logger.Infof("Databases: %d\n", getLength(r.storeState.Databases))
logger.Infof("Collections: %d\n", getLength(r.storeState.Collections))
logger.Infof("Documents: %d\n", getLength(r.storeState.Documents))
@@ -83,7 +83,7 @@ func (r *DataRepository) SaveStateFS(filePath string) {
os.WriteFile(filePath, data, os.ModePerm)
logger.Info("Saved state:")
logger.InfoLn("Saved state:")
logger.Infof("Databases: %d\n", getLength(r.storeState.Databases))
logger.Infof("Collections: %d\n", getLength(r.storeState.Collections))
logger.Infof("Documents: %d\n", getLength(r.storeState.Documents))

View File

@@ -9,7 +9,7 @@ import (
func GetDefaultTlsConfig() *tls.Config {
cert, err := tls.X509KeyPair([]byte(certificate), []byte(certificateKey))
if err != nil {
logger.Error("Failed to parse certificate and key:", err)
logger.ErrorLn("Failed to parse certificate and key:", err)
return &tls.Config{}
}