mirror of
https://github.com/42wim/matterbridge.git
synced 2024-12-11 11:42:00 -08:00
d16645c952
* Update mattermost library * Fix linting
128 lines
4.1 KiB
Go
128 lines
4.1 KiB
Go
package logr
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
// Any picks the best supported field type based on type of val.
|
|
// For best performance when passing a struct (or struct pointer),
|
|
// implement `logr.LogWriter` on the struct, otherwise reflection
|
|
// will be used to generate a string representation.
|
|
func Any(key string, val any) Field {
|
|
return fieldForAny(key, val)
|
|
}
|
|
|
|
// Int64 constructs a field containing a key and Int64 value.
|
|
//
|
|
// Deprecated: Use [logr.Int] instead.
|
|
func Int64(key string, val int64) Field {
|
|
return Field{Key: key, Type: Int64Type, Integer: val}
|
|
}
|
|
|
|
// Int32 constructs a field containing a key and Int32 value.
|
|
//
|
|
// Deprecated: Use [logr.Int] instead.
|
|
func Int32(key string, val int32) Field {
|
|
return Field{Key: key, Type: Int32Type, Integer: int64(val)}
|
|
}
|
|
|
|
// Int constructs a field containing a key and int value.
|
|
func Int[T ~int | ~int8 | ~int16 | ~int32 | ~int64](key string, val T) Field {
|
|
return Field{Key: key, Type: IntType, Integer: int64(val)}
|
|
}
|
|
|
|
// Uint64 constructs a field containing a key and Uint64 value.
|
|
//
|
|
// Deprecated: Use [logr.Uint] instead.
|
|
func Uint64(key string, val uint64) Field {
|
|
return Field{Key: key, Type: Uint64Type, Integer: int64(val)}
|
|
}
|
|
|
|
// Uint32 constructs a field containing a key and Uint32 value.
|
|
//
|
|
// Deprecated: Use [logr.Uint] instead
|
|
func Uint32(key string, val uint32) Field {
|
|
return Field{Key: key, Type: Uint32Type, Integer: int64(val)}
|
|
}
|
|
|
|
// Uint constructs a field containing a key and uint value.
|
|
func Uint[T ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr](key string, val T) Field {
|
|
return Field{Key: key, Type: UintType, Integer: int64(val)}
|
|
}
|
|
|
|
// Float64 constructs a field containing a key and Float64 value.
|
|
//
|
|
// Deprecated: Use [logr.Float] instead
|
|
func Float64(key string, val float64) Field {
|
|
return Field{Key: key, Type: Float64Type, Float: val}
|
|
}
|
|
|
|
// Float32 constructs a field containing a key and Float32 value.
|
|
//
|
|
// Deprecated: Use [logr.Float] instead
|
|
func Float32(key string, val float32) Field {
|
|
return Field{Key: key, Type: Float32Type, Float: float64(val)}
|
|
}
|
|
|
|
// Float32 constructs a field containing a key and float value.
|
|
func Float[T ~float32 | ~float64](key string, val T) Field {
|
|
return Field{Key: key, Type: Float32Type, Float: float64(val)}
|
|
}
|
|
|
|
// String constructs a field containing a key and String value.
|
|
func String[T ~string | ~[]byte](key string, val T) Field {
|
|
return Field{Key: key, Type: StringType, String: string(val)}
|
|
}
|
|
|
|
// Stringer constructs a field containing a key and a `fmt.Stringer` value.
|
|
// The `String` method will be called in lazy fashion.
|
|
func Stringer(key string, val fmt.Stringer) Field {
|
|
return Field{Key: key, Type: StringerType, Interface: val}
|
|
}
|
|
|
|
// Err constructs a field containing a default key ("error") and error value.
|
|
func Err(err error) Field {
|
|
return NamedErr("error", err)
|
|
}
|
|
|
|
// NamedErr constructs a field containing a key and error value.
|
|
func NamedErr(key string, err error) Field {
|
|
return Field{Key: key, Type: ErrorType, Interface: err}
|
|
}
|
|
|
|
// Bool constructs a field containing a key and bool value.
|
|
func Bool[T ~bool](key string, val T) Field {
|
|
var b int64
|
|
if val {
|
|
b = 1
|
|
}
|
|
return Field{Key: key, Type: BoolType, Integer: b}
|
|
}
|
|
|
|
// Time constructs a field containing a key and time.Time value.
|
|
func Time(key string, val time.Time) Field {
|
|
return Field{Key: key, Type: TimeType, Interface: val}
|
|
}
|
|
|
|
// Duration constructs a field containing a key and time.Duration value.
|
|
func Duration(key string, val time.Duration) Field {
|
|
return Field{Key: key, Type: DurationType, Integer: int64(val)}
|
|
}
|
|
|
|
// Millis constructs a field containing a key and timestamp value.
|
|
// The timestamp is expected to be milliseconds since Jan 1, 1970 UTC.
|
|
func Millis(key string, val int64) Field {
|
|
return Field{Key: key, Type: TimestampMillisType, Integer: val}
|
|
}
|
|
|
|
// Array constructs a field containing a key and array value.
|
|
func Array[S ~[]E, E any](key string, val S) Field {
|
|
return Field{Key: key, Type: ArrayType, Interface: val}
|
|
}
|
|
|
|
// Map constructs a field containing a key and map value.
|
|
func Map[M ~map[K]V, K comparable, V any](key string, val M) Field {
|
|
return Field{Key: key, Type: MapType, Interface: val}
|
|
}
|