From b534ecd04e0271560902d251b396670b4f99b329 Mon Sep 17 00:00:00 2001 From: Dan Ballard Date: Fri, 21 Jun 2019 15:32:19 -0700 Subject: [PATCH] add log exclude --- log/log.go | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/log/log.go b/log/log.go index 0e9954c..ddeb098 100644 --- a/log/log.go +++ b/log/log.go @@ -31,6 +31,7 @@ type Logger struct { level Level nothingExceptPatterns []string everythingFromPatterns []string + excludeFromPatterns []string } // New returns a new Logger with a filter set to the supplied level @@ -48,6 +49,12 @@ func (l *Logger) filter(level Level) bool { file = "???" } + for _, pattern := range l.excludeFromPatterns { + if strings.Contains(file, pattern) { + return false + } + } + for _, pattern := range l.everythingFromPatterns { if strings.Contains(file, pattern) { return true @@ -81,11 +88,16 @@ func (l *Logger) AddNothingExceptFilter(pattern string) { l.nothingExceptPatterns = append(l.nothingExceptPatterns, pattern) } -// AddEverythingFromPattern adds a pattern to skip log level filtering, guaranteeing all logs matching hte pattern are seen +// AddEverythingFromPattern adds a pattern to skip log level filtering, guaranteeing all logs matching the pattern are seen func (l *Logger) AddEverythingFromPattern(pattern string) { l.everythingFromPatterns = append(l.everythingFromPatterns, pattern) } +// ExcludeFromPattern adds a pattern to exclude logs from +func (l *Logger) ExcludeFromPattern(pattern string) { + l.excludeFromPatterns = append(l.excludeFromPatterns, pattern) +} + func (l *Logger) header(level Level) string { _, file, _, ok := runtime.Caller(3) if !ok { @@ -131,11 +143,16 @@ func AddNothingExceptFilter(pattern string) { std.AddNothingExceptFilter(pattern) } -// AddEverythingFromPattern adds a pattern to skip log level filtering, guaranteeing all logs matching hte pattern are seen +// AddEverythingFromPattern adds a pattern to skip log level filtering, guaranteeing all logs matching the pattern are seen func AddEverythingFromPattern(pattern string) { std.AddEverythingFromPattern(pattern) } +// ExcludeFromPattern adds a pattern to exclude logs from +func ExcludeFromPattern(pattern string) { + std.ExcludeFromPattern(pattern) +} + // Printf outputs the format with variables assuming it passes the filter level func Printf(level Level, format string, v ...interface{}) { std.Printf(level, format, v...)