You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.7 KiB
59 lines
1.7 KiB
6 years ago
|
package log
|
||
|
|
||
|
import (
|
||
|
"math"
|
||
|
"time"
|
||
|
|
||
|
"github.com/bilibili/Kratos/pkg/log/internal/core"
|
||
|
)
|
||
|
|
||
|
// D represents a map of entry level data used for structured logging.
|
||
|
// type D map[string]interface{}
|
||
|
type D = core.Field
|
||
|
|
||
|
// KVString construct Field with string value.
|
||
|
func KVString(key string, value string) D {
|
||
|
return D{Key: key, Type: core.StringType, StringVal: value}
|
||
|
}
|
||
|
|
||
|
// KVInt construct Field with int value.
|
||
|
func KVInt(key string, value int) D {
|
||
|
return D{Key: key, Type: core.IntTpye, Int64Val: int64(value)}
|
||
|
}
|
||
|
|
||
|
// KVInt64 construct D with int64 value.
|
||
|
func KVInt64(key string, value int64) D {
|
||
|
return D{Key: key, Type: core.Int64Type, Int64Val: value}
|
||
|
}
|
||
|
|
||
|
// KVUint construct Field with uint value.
|
||
|
func KVUint(key string, value uint) D {
|
||
|
return D{Key: key, Type: core.UintType, Int64Val: int64(value)}
|
||
|
}
|
||
|
|
||
|
// KVUint64 construct Field with uint64 value.
|
||
|
func KVUint64(key string, value uint64) D {
|
||
|
return D{Key: key, Type: core.Uint64Type, Int64Val: int64(value)}
|
||
|
}
|
||
|
|
||
|
// KVFloat32 construct Field with float32 value.
|
||
|
func KVFloat32(key string, value float32) D {
|
||
|
return D{Key: key, Type: core.Float32Type, Int64Val: int64(math.Float32bits(value))}
|
||
|
}
|
||
|
|
||
|
// KVFloat64 construct Field with float64 value.
|
||
|
func KVFloat64(key string, value float64) D {
|
||
|
return D{Key: key, Type: core.Float64Type, Int64Val: int64(math.Float64bits(value))}
|
||
|
}
|
||
|
|
||
|
// KVDuration construct Field with Duration value.
|
||
|
func KVDuration(key string, value time.Duration) D {
|
||
|
return D{Key: key, Type: core.DurationType, Int64Val: int64(value)}
|
||
|
}
|
||
|
|
||
|
// KV return a log kv for logging field.
|
||
|
// NOTE: use KV{type name} can avoid object alloc and get better performance. []~( ̄▽ ̄)~*干杯
|
||
|
func KV(key string, value interface{}) D {
|
||
|
return D{Key: key, Value: value}
|
||
|
}
|