From d7097e76e4fe3c281214250420c57b615759a359 Mon Sep 17 00:00:00 2001 From: Chiran Fernando Date: Sat, 5 Apr 2025 08:24:32 +0530 Subject: [PATCH] Manage logging levels --- cmd/proxy/main.go | 10 ++++++++++ internal/logging/logger.go | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 internal/logging/logger.go diff --git a/cmd/proxy/main.go b/cmd/proxy/main.go index 3f5c6c9..a61f227 100644 --- a/cmd/proxy/main.go +++ b/cmd/proxy/main.go @@ -13,6 +13,7 @@ import ( "github.com/wso2/open-mcp-auth-proxy/internal/authz" "github.com/wso2/open-mcp-auth-proxy/internal/config" "github.com/wso2/open-mcp-auth-proxy/internal/constants" + "github.com/wso2/open-mcp-auth-proxy/internal/logging" "github.com/wso2/open-mcp-auth-proxy/internal/proxy" "github.com/wso2/open-mcp-auth-proxy/internal/subprocess" "github.com/wso2/open-mcp-auth-proxy/internal/util" @@ -21,8 +22,11 @@ import ( func main() { demoMode := flag.Bool("demo", false, "Use Asgardeo-based provider (demo).") asgardeoMode := flag.Bool("asgardeo", false, "Use Asgardeo-based provider (asgardeo).") + debugMode := flag.Bool("debug", false, "Enable debug logging") flag.Parse() + logger.SetDebug(*debugMode) + // 1. Load config cfg, err := config.LoadConfig("config.yaml") if err != nil { @@ -64,6 +68,12 @@ func main() { // 3. Start subprocess if configured var procManager *subprocess.Manager if cfg.Command.Enabled && cfg.Command.UserCommand != "" { + // Ensure all required dependencies are available + if err := subprocess.EnsureDependenciesAvailable(cfg.Command.UserCommand); err != nil { + log.Printf("Warning: %v", err) + log.Printf("Subprocess may fail to start due to missing dependencies") + } + procManager = subprocess.NewManager() if err := procManager.Start(&cfg.Command); err != nil { log.Printf("Warning: Failed to start subprocess: %v", err) diff --git a/internal/logging/logger.go b/internal/logging/logger.go new file mode 100644 index 0000000..9958fc1 --- /dev/null +++ b/internal/logging/logger.go @@ -0,0 +1,34 @@ +package logger + +import ( + "log" +) + +var isDebug = false + +// SetDebug enables or disables debug logging +func SetDebug(debug bool) { + isDebug = debug +} + +// Debug logs a debug-level message +func Debug(format string, v ...interface{}) { + if isDebug { + log.Printf("DEBUG: "+format, v...) + } +} + +// Info logs an info-level message +func Info(format string, v ...interface{}) { + log.Printf("INFO: "+format, v...) +} + +// Warn logs a warning-level message +func Warn(format string, v ...interface{}) { + log.Printf("WARN: "+format, v...) +} + +// Error logs an error-level message +func Error(format string, v ...interface{}) { + log.Printf("ERROR: "+format, v...) +} \ No newline at end of file