frp/utils/log/log_extend.go
2018-12-26 22:48:10 +08:00

34 lines
559 B
Go

package log
import (
"sync"
"time"
)
var logListeners = make([]LogListener, 0)
var lock sync.Mutex
type LogListener interface {
Log(log string)
Location() string
}
func AppendListener(l LogListener) {
lock.Lock()
logListeners = append(logListeners, l)
lock.Unlock()
}
func CallLogListeners(log string) {
lock.Lock()
for _, l := range logListeners {
location, _ := time.LoadLocation(l.Location())
if location == nil {
location = time.UTC
}
l.Log(time.Now().In(location).Format("2006/01/02 15:04:05") + ": " + log)
}
lock.Unlock()
}