diff --git a/core/interfaces/logger.go b/core/interfaces/logger.go new file mode 100644 index 00000000..dce1ee6d --- /dev/null +++ b/core/interfaces/logger.go @@ -0,0 +1,16 @@ +package interfaces + +// Logger interface for reporting informational and warning messages. +type Logger interface { + // Debugf logs a formatted debugging message. + Debugf(format string, args ...interface{}) + + // Infof logs a formatted informational message. + Infof(format string, args ...interface{}) + + // Warnf logs a formatted warning message. + Warnf(format string, args ...interface{}) + + // Errorf logs a formatted error message. + Errorf(format string, args ...interface{}) +} diff --git a/core/utils/log.go b/core/utils/log.go new file mode 100644 index 00000000..babda4ac --- /dev/null +++ b/core/utils/log.go @@ -0,0 +1,42 @@ +package utils + +import ( + "fmt" + "github.com/apex/log" +) + +// ServiceLogger represents a logger with a specific service prefix. +type ServiceLogger struct { + prefix string +} + +// NewServiceLogger creates a new logger with the given service name as a prefix. +func NewServiceLogger(serviceName string) *ServiceLogger { + return &ServiceLogger{ + prefix: serviceName, + } +} + +// Infof logs an informational message with formatted content. +func (l *ServiceLogger) Infof(format string, args ...interface{}) { + log.Infof(l.getFormat(format), args...) +} + +// Warnf logs a warning message with formatted content. +func (l *ServiceLogger) Warnf(format string, args ...interface{}) { + log.Warnf(l.getFormat(format), args...) +} + +// Errorf logs an error message with formatted content. +func (l *ServiceLogger) Errorf(format string, args ...interface{}) { + log.Errorf(l.getFormat(format), args...) +} + +// Debugf logs a debug message with formatted content. +func (l *ServiceLogger) Debugf(format string, args ...interface{}) { + log.Debugf(l.getFormat(format), args...) +} + +func (l *ServiceLogger) getFormat(format string) string { + return fmt.Sprintf("[%s] %s", l.prefix, format) +}