2024-11-24 16:50:03 +08:00

63 lines
1.3 KiB
Go

package logger
import (
"fmt"
"sync"
"time"
"github.com/nezhahq/service"
)
var (
DefaultLogger = &ServiceLogger{enabled: true, logger: service.ConsoleLogger}
loggerOnce sync.Once
)
type ServiceLogger struct {
enabled bool
logger service.Logger
}
func InitDefaultLogger(enabled bool, logger service.Logger) {
loggerOnce.Do(func() {
DefaultLogger = &ServiceLogger{
enabled: enabled,
logger: logger,
}
})
}
func NewServiceLogger(enable bool, logger service.Logger) *ServiceLogger {
return &ServiceLogger{
enabled: enable,
logger: logger,
}
}
func (s *ServiceLogger) Println(v ...interface{}) {
if s.enabled {
s.logger.Infof("NEZHA@%s>> %v", time.Now().Format("2006-01-02 15:04:05"), fmt.Sprint(v...))
}
}
func (s *ServiceLogger) Printf(format string, v ...interface{}) {
if s.enabled {
s.logger.Infof("NEZHA@%s>> "+format, append([]interface{}{time.Now().Format("2006-01-02 15:04:05")}, v...)...)
}
}
func (s *ServiceLogger) Error(v ...interface{}) error {
if s.enabled {
return s.logger.Errorf("NEZHA@%s>> %v", time.Now().Format("2006-01-02 15:04:05"), fmt.Sprint(v...))
}
return nil
}
func (s *ServiceLogger) Errorf(format string, v ...interface{}) error {
if s.enabled {
return s.logger.Errorf("NEZHA@%s>> "+format, append([]interface{}{time.Now().Format("2006-01-02 15:04:05")}, v...)...)
}
return nil
}