github.com/gogf/gf@v1.16.9/.example/os/glog/glog_writer_hook.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "github.com/gogf/gf/frame/g" 6 7 "github.com/gogf/gf/os/glog" 8 "github.com/gogf/gf/text/gregex" 9 ) 10 11 type MyWriter struct { 12 logger *glog.Logger 13 } 14 15 func (w *MyWriter) Write(p []byte) (n int, err error) { 16 s := string(p) 17 if gregex.IsMatchString(`\[(PANI|FATA)\]`, s) { 18 fmt.Println("SERIOUS ISSUE OCCURRED!! I'd better tell monitor in first time!") 19 g.Client().PostContent("http://monitor.mydomain.com", s) 20 } 21 return w.logger.Write(p) 22 } 23 24 func main() { 25 glog.SetWriter(&MyWriter{ 26 logger: glog.New(), 27 }) 28 glog.Debug("DEBUG") 29 glog.Fatal("FATAL ERROR") 30 31 }