mirror of
https://github.com/cwinfo/matterbridge.git
synced 2024-11-23 14:01:35 +00:00
56 lines
2.3 KiB
Go
56 lines
2.3 KiB
Go
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||
|
// See LICENSE.txt for license information.
|
||
|
|
||
|
package mlog
|
||
|
|
||
|
import "github.com/mattermost/logr/v2"
|
||
|
|
||
|
// MaxQueueSize is the maximum number of log records that can be queued.
|
||
|
// If exceeded, `OnQueueFull` is called which determines if the log
|
||
|
// record will be dropped or block until add is successful.
|
||
|
// Defaults to DefaultMaxQueueSize.
|
||
|
func MaxQueueSize(size int) Option {
|
||
|
return logr.MaxQueueSize(size)
|
||
|
}
|
||
|
|
||
|
// OnLoggerError, when not nil, is called any time an internal
|
||
|
// logging error occurs. For example, this can happen when a
|
||
|
// target cannot connect to its data sink.
|
||
|
func OnLoggerError(f func(error)) Option {
|
||
|
return logr.OnLoggerError(f)
|
||
|
}
|
||
|
|
||
|
// OnQueueFull, when not nil, is called on an attempt to add
|
||
|
// a log record to a full Logr queue.
|
||
|
// `MaxQueueSize` can be used to modify the maximum queue size.
|
||
|
// This function should return quickly, with a bool indicating whether
|
||
|
// the log record should be dropped (true) or block until the log record
|
||
|
// is successfully added (false). If nil then blocking (false) is assumed.
|
||
|
func OnQueueFull(f func(rec *LogRec, maxQueueSize int) bool) Option {
|
||
|
return logr.OnQueueFull(f)
|
||
|
}
|
||
|
|
||
|
// OnTargetQueueFull, when not nil, is called on an attempt to add
|
||
|
// a log record to a full target queue provided the target supports reporting
|
||
|
// this condition.
|
||
|
// This function should return quickly, with a bool indicating whether
|
||
|
// the log record should be dropped (true) or block until the log record
|
||
|
// is successfully added (false). If nil then blocking (false) is assumed.
|
||
|
func OnTargetQueueFull(f func(target Target, rec *LogRec, maxQueueSize int) bool) Option {
|
||
|
return logr.OnTargetQueueFull(f)
|
||
|
}
|
||
|
|
||
|
// SetMetricsCollector enables metrics collection by supplying a MetricsCollector.
|
||
|
// The MetricsCollector provides counters and gauges that are updated by log targets.
|
||
|
// `updateFreqMillis` determines how often polled metrics are updated. Defaults to 15000 (15 seconds)
|
||
|
// and must be at least 250 so we don't peg the CPU.
|
||
|
func SetMetricsCollector(collector MetricsCollector, updateFreqMillis int64) Option {
|
||
|
return logr.SetMetricsCollector(collector, updateFreqMillis)
|
||
|
}
|
||
|
|
||
|
// StackFilter provides a list of package names to exclude from the top of
|
||
|
// stack traces. The Logr packages are automatically filtered.
|
||
|
func StackFilter(pkg ...string) Option {
|
||
|
return logr.StackFilter(pkg...)
|
||
|
}
|