本文整理汇总了Golang中github.com/Sirupsen/logrus.Fields函数的典型用法代码示例。如果您正苦于以下问题:Golang Fields函数的具体用法?Golang Fields怎么用?Golang Fields使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Fields函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: WithFields
func (l barkLogrusLogger) WithFields(logFields LogFields) Logger {
if logFields == nil {
return l
}
return newBarkLogrusLogger(l.logrusLoggerOrEntry.WithFields(logrus.Fields(logFields.Fields())))
}
示例2: calculateStats
func (c *Cache) calculateStats(reportingDuration time.Duration) {
c.lock.Lock()
defer c.lock.Unlock()
ratio := 100
if c.hits+c.misses != 0 {
ratio = 100 * c.hits / (c.hits + c.misses)
}
c.stats = map[string]interface{}{
"type": "metric",
"metric_name": "cachestatus",
"cache_entries": c.lruBackend.Len(),
"cache_size_bytes": c.currentSizeBytes,
"cache_reporting_duration": reportingDuration,
"cache_hits": c.hits,
"cache_misses": c.misses,
"cache_hit_ratio": ratio,
}
c.hits = 0
c.misses = 0
logging.Logger.
WithFields(logrus.Fields(c.stats)).
Infof("cache status #%v, %vbytes, %v%% hits", c.lruBackend.Len(), c.currentSizeBytes, ratio)
}
示例3: Debug
func (logger *Logger) Debug(message interface{}, fields ...Fields) {
var log logrus.FieldLogger = logger.Logger
if len(fields) > 0 {
log = log.WithFields(logrus.Fields(fields[0]))
}
log.Debug(message)
}
示例4: ParamsWithFields
func (l *LogrusLogger) ParamsWithFields(params interface{}, f map[string]interface{}) {
var pstr string
pb, err := json.Marshal(params)
if err != nil {
pstr = "json marshal error"
} else {
pstr = string(pb)
}
f["params"] = pstr
l.Logger.WithFields(logrus.Fields(f)).Info("params_log")
}
示例5: WithFields
func (l Logger) WithFields(fields map[string]interface{}) Entry {
if fields == nil {
fields = make(map[string]interface{})
}
_, file, line, _ := runtime.Caller(2)
fields["*TIME"] = getTime()
fields[".FILE"] = trimFile(file)
fields[".LINE"] = line
return Entry{
l.logger.WithFields(logrus.Fields(fields)),
}
}
示例6: WithFields
// WithFields returns an advanced logger with pre-set fields.
func (l *Logger) WithFields(fields ...interface{}) loggers.Advanced {
f := make(map[string]interface{}, len(fields)/2)
var key, value interface{}
for i := 0; i+1 < len(fields); i = i + 2 {
key = fields[i]
value = fields[i+1]
if s, ok := key.(string); ok {
f[s] = value
} else if s, ok := key.(fmt.Stringer); ok {
f[s.String()] = value
}
}
return l.Logger.WithFields(logrus.Fields(f))
}
示例7: TestGetUserFromString
func TestGetUserFromString(t *testing.T) {
assert := assert.New(t)
tests := []struct {
data map[string]interface{}
expected bool
description string
}{
{map[string]interface{}{
"user_name": "name",
"user_email": "[email protected]",
"user_id": "A0001",
"user_ip": "0.0.0.0",
}, true, "valid user"},
{map[string]interface{}{"user_name": "name"}, true, "valid user"},
{map[string]interface{}{"user_email": "[email protected]"}, true, "valid user"},
{map[string]interface{}{"user_id": "A0001"}, true, "valid user"},
{map[string]interface{}{"user_ip": "0.0.0.0"}, true, "valid user"},
{map[string]interface{}{"user_name": ""}, false, "invalid user: empty user_name"},
{map[string]interface{}{"user_email": ""}, false, "invalid user: empty user_email"},
{map[string]interface{}{"user_id": ""}, false, "invalid user: empty user_id"},
{map[string]interface{}{"user_ip": ""}, false, "invalid user: empty user_ip"},
{map[string]interface{}{
"user_name": 1,
"user_email": true,
"user_id": errors.New("user_id"),
"user_ip": "",
}, false, "invalid types"},
}
for _, tt := range tests {
target := fmt.Sprintf("%+v", tt)
fields := logrus.Fields(tt.data)
df := newDataField(fields)
user, ok := df.getUser()
assert.Equal(tt.expected, ok, target)
if ok {
assert.IsType(&raven.User{}, user, target)
}
}
}
示例8: RespondWithError
// RespondWithError will return an error response with the appropriate message,
// and status codes set.
func RespondWithError(w http.ResponseWriter, r *http.Request, err error) {
isPublicError := false
errorResponse := APIError{
Error: err.Error(),
}
code := http.StatusInternalServerError
if statusErr, ok := err.(StatusError); ok {
// If we get a status code, this error can be considered a public error.
isPublicError = true
code = statusErr.StatusCode()
}
if descriptiveErr, ok := err.(DescriptiveError); ok {
errorResponse.Description = descriptiveErr.ErrorDescription()
}
if annotatedErr, ok := err.(AnnotatedError); ok {
errorResponse.Fields = annotatedErr.ErrorFields()
}
w.WriteHeader(code)
// Now log some information about the failure.
logData := map[string]interface{}{}
if structuredLogErr, ok := err.(StructuredLogsError); ok {
for key, value := range structuredLogErr.LogFields() {
logData[key] = value
}
}
logData["status"] = code
if !isPublicError {
logData["original_error"] = err.Error()
err = fail.NewPrivate(err)
errorResponse.Error = err.Error()
}
body := DefaultRenderer.RenderError(errorResponse)
w.Write(body)
log.WithError(err).WithFields(logrus.Fields(logData)).Error("Returning error response")
}
示例9: PurgeEntries
// Purge Entries with a specific hash
func (c *Cache) PurgeEntries(keys []string) {
purged := 0
purgedKeys := []string{}
for _, key := range keys {
c.lock.RLock()
_, found := c.lruBackend.Peek(key)
c.lock.RUnlock()
if found {
c.lock.Lock()
c.lruBackend.Remove(key)
c.lock.Unlock()
purged++
purgedKeys = append(purgedKeys, key)
}
}
logging.Logger.
WithFields(logrus.Fields(c.stats)).
Infof("Following cache entries become purged: %v", c.PurgedKeysAsString(keys))
}
示例10: TrackEvent
func TrackEvent(event string, params map[string]interface{}) {
log := logrus.WithFields(logrus.Fields{"ns": "api.helpers", "at": "TrackEvent"})
if params == nil {
params = map[string]interface{}{}
}
params["client_id"] = os.Getenv("CLIENT_ID")
params["rack"] = os.Getenv("RACK")
params["release"] = os.Getenv("RELEASE")
userId := RackId()
log.WithFields(logrus.Fields{"event": event, "user_id": userId}).WithFields(logrus.Fields(params)).Info()
segment.Track(&analytics.Track{
Event: event,
UserId: userId,
Properties: params,
})
}
示例11: newLog
func (log *Logger) newLog(level logrus.Level, data map[string]interface{}) {
log.rotate()
data["_ts_"] = utils.GetNowMillisecond()
fields := logrus.Fields(data)
switch level {
case LOG_LEVEL_DEBUG:
log.WithFields(fields).Debug("")
case LOG_LEVEL_INFO:
log.WithFields(fields).Info("")
case LOG_LEVEL_WARN:
log.WithFields(fields).Warn("")
case LOG_LEVEL_ERROR:
log.WithFields(fields).Error("")
case LOG_LEVEL_FATAL:
log.WithFields(fields).Fatal("")
case LOG_LEVEL_PANIC:
log.WithFields(fields).Panic("")
default:
log.WithFields(fields).Info("")
}
}
示例12: PurgeOldEntries
// PurgeOldEntries removes all entries which are out of their ttl
func (c *Cache) PurgeOldEntries() {
c.lock.RLock()
keys := c.lruBackend.Keys()
c.lock.RUnlock()
purged := 0
for _, key := range keys {
c.lock.RLock()
e, found := c.lruBackend.Peek(key)
c.lock.RUnlock()
if found {
entry := e.(*CacheEntry)
if time.Since(entry.fetchTime) > c.maxAge {
c.lock.Lock()
c.lruBackend.Remove(key)
c.lock.Unlock()
purged++
}
}
}
logging.Logger.
WithFields(logrus.Fields(c.stats)).
Infof("purged %v out of %v cache entries", purged, len(keys))
}
示例13: ErrorWithFields
func (l *LogrusLogger) ErrorWithFields(e error, f map[string]interface{}) {
f["msg"] = e.Error()
logrusF := logrus.Fields(f)
l.Logger.WithFields(logrusF).Error("error")
}
示例14: InfoWithFields
func (l *LogrusLogger) InfoWithFields(msg string, f map[string]interface{}) {
logrusF := logrus.Fields(f)
l.Logger.WithFields(logrusF).Info(msg)
}
示例15: GetLoggerWithFields
// GetLoggerWithFields returns a logger instance with the specified fields
// without affecting the context. Extra specified keys will be resolved from
// the context.
func GetLoggerWithFields(ctx Context, fields map[string]interface{}, keys ...interface{}) Logger {
return getLogrusLogger(ctx, keys...).WithFields(logrus.Fields(fields))
}