Integrate-with-supabase-backend
This commit is contained in:
90
internal/logging/logger.go
Normal file
90
internal/logging/logger.go
Normal file
@@ -0,0 +1,90 @@
|
||||
package logging
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"log/syslog"
|
||||
"os"
|
||||
)
|
||||
|
||||
type Logger struct {
|
||||
syslogWriter *syslog.Writer
|
||||
debugMode bool
|
||||
}
|
||||
|
||||
var defaultLogger *Logger
|
||||
|
||||
func init() {
|
||||
defaultLogger = NewLogger()
|
||||
}
|
||||
|
||||
func NewLogger() *Logger {
|
||||
l := &Logger{
|
||||
debugMode: os.Getenv("DEBUG") == "true",
|
||||
}
|
||||
|
||||
// Try to connect to syslog
|
||||
if writer, err := syslog.New(syslog.LOG_INFO|syslog.LOG_DAEMON, "nannyagentv2"); err == nil {
|
||||
l.syslogWriter = writer
|
||||
}
|
||||
|
||||
return l
|
||||
}
|
||||
|
||||
func (l *Logger) Info(format string, args ...interface{}) {
|
||||
msg := fmt.Sprintf(format, args...)
|
||||
if l.syslogWriter != nil {
|
||||
l.syslogWriter.Info(msg)
|
||||
}
|
||||
log.Printf("[INFO] %s", msg)
|
||||
}
|
||||
|
||||
func (l *Logger) Debug(format string, args ...interface{}) {
|
||||
if !l.debugMode {
|
||||
return
|
||||
}
|
||||
msg := fmt.Sprintf(format, args...)
|
||||
if l.syslogWriter != nil {
|
||||
l.syslogWriter.Debug(msg)
|
||||
}
|
||||
log.Printf("[DEBUG] %s", msg)
|
||||
}
|
||||
|
||||
func (l *Logger) Warning(format string, args ...interface{}) {
|
||||
msg := fmt.Sprintf(format, args...)
|
||||
if l.syslogWriter != nil {
|
||||
l.syslogWriter.Warning(msg)
|
||||
}
|
||||
log.Printf("[WARNING] %s", msg)
|
||||
}
|
||||
|
||||
func (l *Logger) Error(format string, args ...interface{}) {
|
||||
msg := fmt.Sprintf(format, args...)
|
||||
if l.syslogWriter != nil {
|
||||
l.syslogWriter.Err(msg)
|
||||
}
|
||||
log.Printf("[ERROR] %s", msg)
|
||||
}
|
||||
|
||||
func (l *Logger) Close() {
|
||||
if l.syslogWriter != nil {
|
||||
l.syslogWriter.Close()
|
||||
}
|
||||
}
|
||||
|
||||
// Global logging functions
|
||||
func Info(format string, args ...interface{}) {
|
||||
defaultLogger.Info(format, args...)
|
||||
}
|
||||
|
||||
func Debug(format string, args ...interface{}) {
|
||||
defaultLogger.Debug(format, args...)
|
||||
}
|
||||
|
||||
func Warning(format string, args ...interface{}) {
|
||||
defaultLogger.Warning(format, args...)
|
||||
}
|
||||
|
||||
func Error(format string, args ...interface{}) {
|
||||
defaultLogger.Error(format, args...)
|
||||
}
|
||||
Reference in New Issue
Block a user