github.com/sereiner/library@v0.0.0-20200518095232-1fa3e640cc5f/log/appender.factory.reg.go (about)

     1  package log
     2  
     3  import "github.com/sereiner/library/concurrent/cmap"
     4  
     5  type LoggerAppenderFactory interface {
     6  	GetType() string
     7  	MakeAppender(l *Appender, event *LogEvent) (IAppender, error)
     8  	MakeUniq(l *Appender, event *LogEvent) string
     9  }
    10  
    11  var registedFactory cmap.ConcurrentMap
    12  
    13  func init() {
    14  	registedFactory = cmap.New(2)
    15  }
    16  func RegistryFactory(f LoggerAppenderFactory, appender *Appender) {
    17  	registedFactory.SetIfAbsent(f.GetType(), f)
    18  	manager.append(appender)
    19  }
    20  func UnRegistryFactory(tp string) {
    21  	registedFactory.Remove(tp)
    22  	manager.remote(tp)
    23  }