Files
mostlymatter/vendor/github.com/mattermost/logr/timeout.go
Doug Lauder 90ff87a77f MM-25731 Advanced Logging (#14888)
Adds Advanced Logging to server. Advanced Logging is an optional logging capability that allows customers to send log records to any number of destinations.

Supported destinations:
- file
- syslog (with out without TLS)
- raw TCP socket (with out without TLS)

Allows developers to specify discrete log levels as well as the standard trace, debug, info, ... panic. Existing code and logging API usage is unchanged.

Log records are emitted asynchronously to reduce latency to the caller. Supports hot-reloading of logger config, including adding removing targets.

Advanced Logging is configured within config.json via "LogSettings.AdvancedLoggingConfig" which can contain a filespec to another config file, a database DSN, or JSON.
2020-07-15 14:40:36 -04:00

35 строки
719 B
Go

package logr
import "github.com/wiggin77/merror"
// timeoutError is returned from functions that can timeout.
type timeoutError struct {
text string
}
// newTimeoutError returns a TimeoutError.
func newTimeoutError(text string) timeoutError {
return timeoutError{text: text}
}
// IsTimeoutError returns true if err is a TimeoutError.
func IsTimeoutError(err error) bool {
if _, ok := err.(timeoutError); ok {
return true
}
// if a multi-error, return true if any of the errors
// are TimeoutError
if merr, ok := err.(*merror.MError); ok {
for _, e := range merr.Errors() {
if IsTimeoutError(e) {
return true
}
}
}
return false
}
func (err timeoutError) Error() string {
return err.text
}