logger and config updates

This commit is contained in:
Sky Johnson 2025-03-15 14:37:43 -05:00
parent 50e848da6e
commit 5f893647c7
2 changed files with 48 additions and 21 deletions

View File

@ -27,6 +27,7 @@ const (
LevelWarning LevelWarning
LevelError LevelError
LevelFatal LevelFatal
LevelServer
) )
// Level names and colors // Level names and colors
@ -39,6 +40,7 @@ var levelProps = map[int]struct {
LevelWarning: {"WARN", colorYellow}, LevelWarning: {"WARN", colorYellow},
LevelError: {" ERR", colorRed}, LevelError: {" ERR", colorRed},
LevelFatal: {"FATL", colorPurple}, LevelFatal: {"FATL", colorPurple},
LevelServer: {"SRVR", colorGreen},
} }
// Time format for log messages // Time format for log messages
@ -227,6 +229,11 @@ func (l *Logger) Fatal(format string, args ...any) {
// No need for os.Exit here as it's handled in log() // No need for os.Exit here as it's handled in log()
} }
// Server logs a server message
func (l *Logger) Server(format string, args ...any) {
l.log(LevelServer, format, args...)
}
// Default global logger // Default global logger
var defaultLogger = New(LevelInfo, true) var defaultLogger = New(LevelInfo, true)
@ -255,6 +262,11 @@ func Fatal(format string, args ...any) {
defaultLogger.Fatal(format, args...) defaultLogger.Fatal(format, args...)
} }
// Server logs a server message to the default logger
func Server(format string, args ...any) {
defaultLogger.Server(format, args...)
}
// LogRaw logs a raw message to the default logger // LogRaw logs a raw message to the default logger
func LogRaw(format string, args ...any) { func LogRaw(format string, args ...any) {
defaultLogger.LogRaw(format, args...) defaultLogger.LogRaw(format, args...)

View File

@ -47,9 +47,9 @@ func initRouters(routesDir, staticDir string, log *logger.Logger) (*routers.LuaR
func main() { func main() {
// Initialize logger // Initialize logger
log := logger.New(logger.LevelInfo, true) log := logger.New(logger.LevelDebug, true)
log.Info("Starting Moonshark server") log.Server("Starting Moonshark server")
// Load configuration from config.lua // Load configuration from config.lua
cfg, err := config.Load("config.lua") cfg, err := config.Load("config.lua")
@ -59,6 +59,19 @@ func main() {
cfg = config.New() cfg = config.New()
} }
switch cfg.GetString("log_level", "info") {
case "debug":
log.SetLevel(logger.LevelDebug)
case "warn":
log.SetLevel(logger.LevelWarning)
case "error":
log.SetLevel(logger.LevelError)
case "fatal":
log.SetLevel(logger.LevelFatal)
default:
log.SetLevel(logger.LevelInfo)
}
// Get port from config or use default // Get port from config or use default
port := cfg.GetInt("port", 3117) port := cfg.GetInt("port", 3117)
@ -70,6 +83,7 @@ func main() {
log.Fatal("Router initialization failed: %v", err) log.Fatal("Router initialization failed: %v", err)
} }
if cfg.GetBool("watchers", false) {
// Set up file watchers for automatic reloading // Set up file watchers for automatic reloading
luaWatcher, err := watchers.WatchLuaRouter(luaRouter, routesDir, log) luaWatcher, err := watchers.WatchLuaRouter(luaRouter, routesDir, log)
if err != nil { if err != nil {
@ -86,16 +100,17 @@ func main() {
defer staticWatcher.Close() defer staticWatcher.Close()
log.Info("File watcher active for static files") log.Info("File watcher active for static files")
} }
}
// Get worker pool size from config or use default // Get worker pool size from config or use default
workerPoolSize := cfg.GetInt("worker_pool_size", 4) workerPoolSize := cfg.GetInt("pool_size", 4)
// Initialize worker pool // Initialize worker pool
pool, err := workers.NewPool(workerPoolSize) pool, err := workers.NewPool(workerPoolSize)
if err != nil { if err != nil {
log.Fatal("Failed to initialize worker pool: %v", err) log.Fatal("Failed to initialize worker pool: %v", err)
} }
log.Info("Worker pool initialized with %d workers", workerPoolSize) log.Server("Worker pool initialized with %d workers", workerPoolSize)
defer pool.Shutdown() defer pool.Shutdown()
// Create HTTP server // Create HTTP server
@ -114,11 +129,11 @@ func main() {
} }
}() }()
log.Info("Server started on port %d", port) log.Server("Server started on port %d", port)
// Wait for interrupt signal // Wait for interrupt signal
<-stop <-stop
log.Info("Shutdown signal received") log.Server("Shutdown signal received")
// Gracefully shut down the server // Gracefully shut down the server
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
@ -128,5 +143,5 @@ func main() {
log.Error("Server shutdown error: %v", err) log.Error("Server shutdown error: %v", err)
} }
log.Info("Server stopped") log.Server("Server stopped")
} }