modularize logger (#94)
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user