mirror of
https://github.com/nabbar/golib.git
synced 2025-12-24 11:51:02 +08:00
Package Logger:
- STD IO Writer Logger: add capabilities of multi filter slice of byte - STD IO Writer Logger: add function Add..Filter to allow adding filter and not full setting the pattern list Package HTTP Server: - Rework filtering logger message to ignore connections reset by peer in server logger - Rework filtering logger message to ingore all TLS Handshake error in logger
This commit is contained in:
@@ -99,9 +99,11 @@ func (o *srv) setServer(ctx context.Context) error {
|
||||
Handler: o.HandlerLoadFct(),
|
||||
}
|
||||
|
||||
stdlog.SetIOWriterFilter("connection reset by peer")
|
||||
|
||||
if ssl != nil && ssl.LenCertificatePair() > 0 {
|
||||
s.TLSConfig = ssl.TlsConfig("")
|
||||
stdlog.SetIOWriterFilter("http: TLS handshake error from 127.0.0.1")
|
||||
stdlog.AddIOWriterFilter("TLS handshake error")
|
||||
}
|
||||
|
||||
if e := o.cfgGetServer().initServer(s); e != nil {
|
||||
|
||||
@@ -59,8 +59,13 @@ type Logger interface {
|
||||
//GetIOWriterLevel return the minimal level of log message for io.WriterCloser interface
|
||||
GetIOWriterLevel() loglvl.Level
|
||||
|
||||
// SetIOWriterFilter allow to filter message that contained the given pattern. If the pattern is found, the log is drop.
|
||||
SetIOWriterFilter(pattern string)
|
||||
// SetIOWriterFilter allow to filter message that contained the given pattern.
|
||||
// When received any message, if one pattern is found, the log is drop.
|
||||
// If the given pattern is empty, the pattern list is truncated to no one pattern.
|
||||
SetIOWriterFilter(pattern ...string)
|
||||
|
||||
// SetIOWriterFilter allow to add a filter pattern into the filter message pattern list.
|
||||
AddIOWriterFilter(pattern ...string)
|
||||
|
||||
//SetOptions allow to set or update the options for the logger
|
||||
SetOptions(opt *logcfg.Options) error
|
||||
|
||||
@@ -82,14 +82,43 @@ func (o *logger) GetIOWriterLevel() loglvl.Level {
|
||||
}
|
||||
}
|
||||
|
||||
func (o *logger) SetIOWriterFilter(pattern string) {
|
||||
func (o *logger) SetIOWriterFilter(pattern ...string) {
|
||||
if o == nil {
|
||||
return
|
||||
} else if o.x == nil {
|
||||
return
|
||||
}
|
||||
|
||||
o.x.Store(keyFilter, []byte(pattern))
|
||||
var p = make([][]byte, 0, len(pattern))
|
||||
for _, s := range pattern {
|
||||
p = append(p, []byte(s))
|
||||
}
|
||||
|
||||
o.x.Store(keyFilter, p)
|
||||
}
|
||||
|
||||
func (o *logger) AddIOWriterFilter(pattern ...string) {
|
||||
if o == nil {
|
||||
return
|
||||
} else if o.x == nil {
|
||||
return
|
||||
}
|
||||
|
||||
var p = make([][]byte, 0, len(pattern))
|
||||
|
||||
if i, l := o.x.Load(keyFilter); !l {
|
||||
// nothing
|
||||
} else if v, k := i.([][]byte); !k {
|
||||
// nothing
|
||||
} else {
|
||||
p = append(make([][]byte, 0, len(pattern)+len(v)), v...)
|
||||
}
|
||||
|
||||
for _, s := range pattern {
|
||||
p = append(p, []byte(s))
|
||||
}
|
||||
|
||||
o.x.Store(keyFilter, p)
|
||||
}
|
||||
|
||||
func (o *logger) IOWriterFilter(p []byte) []byte {
|
||||
@@ -99,11 +128,15 @@ func (o *logger) IOWriterFilter(p []byte) []byte {
|
||||
return p
|
||||
} else if i, l := o.x.Load(keyFilter); !l {
|
||||
return p
|
||||
} else if v, k := i.([]byte); !k {
|
||||
} else if v, k := i.([][]byte); !k {
|
||||
return p
|
||||
} else if bytes.Contains(p, v) {
|
||||
return make([]byte, 0)
|
||||
} else {
|
||||
for _, b := range v {
|
||||
if bytes.Contains(p, b) {
|
||||
return make([]byte, 0)
|
||||
}
|
||||
}
|
||||
|
||||
return p
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user