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  }