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 }