Skip to main content
Glama
logger.go1.8 kB
package log import ( "fmt" "os" "sync" "github.com/fatih/color" "github.com/sirupsen/logrus" ) var ( // logger is the global logger instance logger *Logger once sync.Once ) // Logger wraps the standard logger with color support type Logger struct { *logrus.Logger green *color.Color cyan *color.Color red *color.Color blue *color.Color yellow *color.Color bold *color.Color } // New creates a new logger with color support func New() *Logger { once.Do(func() { logger = &Logger{ Logger: logrus.New(), green: color.New(color.FgGreen), cyan: color.New(color.FgCyan), red: color.New(color.FgRed), blue: color.New(color.FgBlue), yellow: color.New(color.FgYellow), bold: color.New(color.Bold), } // Configure logrus logger.SetFormatter(&logrus.TextFormatter{ TimestampFormat: "2006/01/02 15:04:05", FullTimestamp: true, ForceColors: true, DisableSorting: true, }) // Set log level based on environment variable if os.Getenv("DEBUG") == "true" { logger.SetLevel(logrus.DebugLevel) logger.Info("Debug logging enabled") } else { logger.SetLevel(logrus.InfoLevel) } }) return logger } func (l *Logger) Info(format string, v ...interface{}) { msg := fmt.Sprintf(format, v...) l.Logger.Info(msg) } func (l *Logger) Error(format string, v ...interface{}) { msg := fmt.Sprintf(format, v...) l.Logger.Error(msg) } func (l *Logger) Fatal(format string, v ...interface{}) { msg := fmt.Sprintf(format, v...) l.Logger.Fatal(msg) } func (l *Logger) Debug(format string, v ...interface{}) { msg := fmt.Sprintf(format, v...) l.Logger.Debug(msg) } // IsDebugEnabled returns true if debug logging is enabled func (l *Logger) IsDebugEnabled() bool { return l.GetLevel() == logrus.DebugLevel }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/babelcloud/gru-sandbox'

If you have feedback or need assistance with the MCP directory API, please join our Discord server