123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package hiedalog
- import "fmt"
- type HiedaLogBackend interface {
- EmitStringLog(module string, level HiedaLogLevel, content string)
- EmitComplexLog(module string, level HiedaLogLevel, data map[string]string)
- }
- type HiedaLogBackendConfig struct {
- Backend HiedaLogBackend
- FilterLevelID uint8
- }
- type HiedaLogger struct {
- BackendConfigs []HiedaLogBackendConfig
- LevelFilter HiedaLogLevelFilter
- }
- func NewHiedaLogger() *HiedaLogger {
- hl := &HiedaLogger{
- BackendConfigs: make([]HiedaLogBackendConfig, 0),
- LevelFilter: NewDefaultLevelFilter(),
- }
- return hl
- }
- func (l *HiedaLogger) AddBackend(backend HiedaLogBackend, filterLevelID uint8) {
- l.BackendConfigs = append(l.BackendConfigs, HiedaLogBackendConfig{
- Backend: backend,
- FilterLevelID: filterLevelID,
- })
- }
- func (l *HiedaLogger) LogString(module, levelName, content string) {
- for _, v := range l.BackendConfigs {
- ce, lv := l.LevelFilter.CanEmitEx(levelName, v.FilterLevelID)
- if ce {
- v.Backend.EmitStringLog(module, lv, content)
- }
- }
- }
- func (l *HiedaLogger) LogComplex(module, levelName string, data map[string]string) {
- for _, v := range l.BackendConfigs {
- ce, lv := l.LevelFilter.CanEmitEx(levelName, v.FilterLevelID)
- if ce {
- v.Backend.EmitComplexLog(module, lv, data)
- }
- }
- }
- func (l *HiedaLogger) EmitStringLog(module string, level HiedaLogLevel, content string) {
- l.LogString(module, level.Name, content)
- }
- func (l *HiedaLogger) EmitComplexLog(module string, level HiedaLogLevel, data map[string]string) {
- l.LogComplex(module, level.Name, data)
- }
- func (l *HiedaLogger) LogPrint(module, level string, d ...interface{}) {
- s := fmt.Sprint(d...)
- l.LogString(module, level, s)
- }
- func (l *HiedaLogger) LogPrintf(module, level, format string, d ...interface{}) {
- s := fmt.Sprintf(format, d...)
- l.LogString(module, level, s)
- }
|