logger and config updates
This commit is contained in:
parent
50e848da6e
commit
5f893647c7
|
@ -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...)
|
||||||
|
|
29
moonshark.go
29
moonshark.go
|
@ -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")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user