logger and config updates

This commit is contained in:
Sky Johnson 2025-03-16 12:57:56 -05:00
parent d66cb603c6
commit 95a4187d3f
2 changed files with 47 additions and 20 deletions

View File

@ -27,6 +27,7 @@ const (
LevelWarning
LevelError
LevelFatal
LevelServer
)
// Level names and colors
@ -39,6 +40,7 @@ var levelProps = map[int]struct {
LevelWarning: {"WARN", colorYellow},
LevelError: {" ERR", colorRed},
LevelFatal: {"FATL", colorPurple},
LevelServer: {"SRVR", colorGreen},
}
// 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()
}
// Server logs a server message
func (l *Logger) Server(format string, args ...any) {
l.log(LevelServer, format, args...)
}
// Default global logger
var defaultLogger = New(LevelInfo, true)
@ -255,6 +262,11 @@ func Fatal(format string, args ...any) {
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
func LogRaw(format string, args ...any) {
defaultLogger.LogRaw(format, args...)

View File

@ -47,9 +47,9 @@ func initRouters(routesDir, staticDir string, log *logger.Logger) (*routers.LuaR
func main() {
// Initialize logger
log := logger.New(logger.LevelFatal, true)
log := logger.New(logger.LevelDebug, true)
log.Info("Starting Moonshark server")
log.Server("Starting Moonshark server")
// Load configuration from config.lua
cfg, err := config.Load("config.lua")
@ -59,6 +59,19 @@ func main() {
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
port := cfg.GetInt("port", 3117)
@ -70,21 +83,23 @@ func main() {
log.Fatal("Router initialization failed: %v", err)
}
// Set up file watchers for automatic reloading
luaWatcher, err := watchers.WatchLuaRouter(luaRouter, routesDir, log)
if err != nil {
log.Warning("Failed to watch routes directory: %v", err)
} else {
defer luaWatcher.Close()
log.Info("File watcher active for Lua routes")
}
if cfg.GetBool("watchers", false) {
// Set up file watchers for automatic reloading
luaWatcher, err := watchers.WatchLuaRouter(luaRouter, routesDir, log)
if err != nil {
log.Warning("Failed to watch routes directory: %v", err)
} else {
defer luaWatcher.Close()
log.Info("File watcher active for Lua routes")
}
staticWatcher, err := watchers.WatchStaticRouter(staticRouter, staticDir, log)
if err != nil {
log.Warning("Failed to watch static directory: %v", err)
} else {
defer staticWatcher.Close()
log.Info("File watcher active for static files")
staticWatcher, err := watchers.WatchStaticRouter(staticRouter, staticDir, log)
if err != nil {
log.Warning("Failed to watch static directory: %v", err)
} else {
defer staticWatcher.Close()
log.Info("File watcher active for static files")
}
}
// Get buffer size from config or use default (used to be worker pool size)
@ -97,7 +112,7 @@ func main() {
if err != nil {
log.Fatal("Failed to initialize Lua runner: %v", err)
}
log.Info("Lua runner initialized with buffer size %d", bufferSize)
log.Server("Lua runner initialized with buffer size %d", bufferSize)
defer runner.Close()
// Create HTTP server
@ -116,11 +131,11 @@ func main() {
}
}()
log.Info("Server started on port %d", port)
log.Server("Server started on port %d", port)
// Wait for interrupt signal
<-stop
log.Info("Shutdown signal received")
log.Server("Shutdown signal received")
// Gracefully shut down the server
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
@ -130,5 +145,5 @@ func main() {
log.Error("Server shutdown error: %v", err)
}
log.Info("Server stopped")
log.Server("Server stopped")
}