24 lines
578 B
Go
24 lines
578 B
Go
|
package logging
|
||
|
|
||
|
type loggerSubject struct {
|
||
|
Registry map[LogMessageType][]loggerObserver
|
||
|
message string
|
||
|
}
|
||
|
|
||
|
func (ls *loggerSubject) setMessage(message string) {
|
||
|
ls.message = message
|
||
|
}
|
||
|
|
||
|
func (ls *loggerSubject) attach(messageType LogMessageType, lo loggerObserver) {
|
||
|
if ls.Registry == nil {
|
||
|
ls.Registry = make(map[LogMessageType][]loggerObserver)
|
||
|
}
|
||
|
ls.Registry[messageType] = append(ls.Registry[messageType], lo)
|
||
|
}
|
||
|
|
||
|
func (ls *loggerSubject) notify(messageType LogMessageType) {
|
||
|
for _, logObserver := range ls.Registry[messageType] {
|
||
|
logObserver.Log(ls.message)
|
||
|
}
|
||
|
}
|