summaryrefslogtreecommitdiff
path: root/internal/io/dlog/loggers
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2021-10-08 11:43:43 +0300
committerPaul Buetow <paul@buetow.org>2021-10-09 12:37:18 +0300
commit2d7ddbeae8286373ac19787dc7dde598a7cb0598 (patch)
tree9749939f8b569951e9639d29450b18c84bb8b6c1 /internal/io/dlog/loggers
parent7306afe9ab073c424ddca0ddc57950f237948118 (diff)
refactor
Diffstat (limited to 'internal/io/dlog/loggers')
-rw-r--r--internal/io/dlog/loggers/factory.go36
1 files changed, 14 insertions, 22 deletions
diff --git a/internal/io/dlog/loggers/factory.go b/internal/io/dlog/loggers/factory.go
index 8697dc4..dda3ee6 100644
--- a/internal/io/dlog/loggers/factory.go
+++ b/internal/io/dlog/loggers/factory.go
@@ -2,45 +2,38 @@ package loggers
import (
"fmt"
+ "strings"
"sync"
)
-type Impl int
-
-const (
- NONE Impl = iota
- STDOUT Impl = iota
- FILE Impl = iota
- FOUT Impl = iota
-)
-
var factoryMap map[string]Logger
var factoryMutex sync.Mutex
-func Factory(name string, impl Impl, strategy Strategy) Logger {
+func Factory(sourceName, loggerName string, rotationStrategy Strategy) Logger {
factoryMutex.Lock()
defer factoryMutex.Unlock()
- id := fmt.Sprintf("name:%s,fileBase:%s,impl:%v", name, strategy.FileBase, impl)
-
+ id := fmt.Sprintf("sourceName:%s,fileBase:%s,loggerName:%s", sourceName, rotationStrategy.FileBase, loggerName)
if factoryMap == nil {
factoryMap = make(map[string]Logger)
}
singleton, ok := factoryMap[id]
if !ok {
- switch impl {
- case NONE:
+ switch strings.ToLower(loggerName) {
+ case "none":
singleton = none{}
- case STDOUT:
+ case "stdout":
singleton = newStdout()
factoryMap[id] = singleton
- case FILE:
- singleton = newFile(strategy)
+ case "file":
+ singleton = newFile(rotationStrategy)
factoryMap[id] = singleton
- case FOUT:
- singleton = newFout(strategy)
+ case "fout":
+ singleton = newFout(rotationStrategy)
factoryMap[id] = singleton
+ default:
+ panic(fmt.Sprintf("Unsupported logger type '%s'", loggerName))
}
}
@@ -53,8 +46,7 @@ func FactoryRotate() {
if factoryMap == nil {
return
}
-
- for _, impl := range factoryMap {
- impl.Rotate()
+ for _, logger := range factoryMap {
+ logger.Rotate()
}
}