summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mattermost/logr/levelcustom.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2020-10-19 23:40:00 +0200
committerGitHub <noreply@github.com>2020-10-19 23:40:00 +0200
commit075a84427f6332aab707d283ad770d69f8816032 (patch)
tree0ff9f56a057919f3fe968e57f6f0b1c0d1f85078 /vendor/github.com/mattermost/logr/levelcustom.go
parent950f2759bd2b20aa0bdedc3dc9a74d0dafb606d8 (diff)
downloadmatterbridge-msglm-075a84427f6332aab707d283ad770d69f8816032.tar.gz
matterbridge-msglm-075a84427f6332aab707d283ad770d69f8816032.tar.bz2
matterbridge-msglm-075a84427f6332aab707d283ad770d69f8816032.zip
Update vendor (#1265)
Diffstat (limited to 'vendor/github.com/mattermost/logr/levelcustom.go')
-rw-r--r--vendor/github.com/mattermost/logr/levelcustom.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/github.com/mattermost/logr/levelcustom.go b/vendor/github.com/mattermost/logr/levelcustom.go
new file mode 100644
index 00000000..384fe4e9
--- /dev/null
+++ b/vendor/github.com/mattermost/logr/levelcustom.go
@@ -0,0 +1,45 @@
+package logr
+
+import (
+ "sync"
+)
+
+// CustomFilter allows targets to enable logging via a list of levels.
+type CustomFilter struct {
+ mux sync.RWMutex
+ levels map[LevelID]Level
+}
+
+// IsEnabled returns true if the specified Level exists in this list.
+func (st *CustomFilter) IsEnabled(level Level) bool {
+ st.mux.RLock()
+ defer st.mux.RUnlock()
+ _, ok := st.levels[level.ID]
+ return ok
+}
+
+// IsStacktraceEnabled returns true if the specified Level requires a stack trace.
+func (st *CustomFilter) IsStacktraceEnabled(level Level) bool {
+ st.mux.RLock()
+ defer st.mux.RUnlock()
+ lvl, ok := st.levels[level.ID]
+ if ok {
+ return lvl.Stacktrace
+ }
+ return false
+}
+
+// Add adds one or more levels to the list. Adding a level enables logging for
+// that level on any targets using this CustomFilter.
+func (st *CustomFilter) Add(levels ...Level) {
+ st.mux.Lock()
+ defer st.mux.Unlock()
+
+ if st.levels == nil {
+ st.levels = make(map[LevelID]Level)
+ }
+
+ for _, s := range levels {
+ st.levels[s.ID] = s
+ }
+}