| 56 | } |
| 57 | |
| 58 | func (h *zapHandler) HandleLog(e Entry) error { |
| 59 | var logFunc func(msg string, fields ...zap.Field) |
| 60 | switch e.Level() { |
| 61 | case DebugLevel: |
| 62 | logFunc = h.Logger.Debug |
| 63 | case InfoLevel: |
| 64 | logFunc = h.Logger.Info |
| 65 | case WarnLevel: |
| 66 | logFunc = h.Logger.Warn |
| 67 | case ErrorLevel: |
| 68 | logFunc = h.Logger.Error |
| 69 | case FatalLevel: |
| 70 | logFunc = h.Logger.Fatal |
| 71 | default: |
| 72 | return nil |
| 73 | } |
| 74 | logFields := e.Fields().Fields() |
| 75 | var fieldNames []string |
| 76 | for k := range logFields { |
| 77 | fieldNames = append(fieldNames, k) |
| 78 | } |
| 79 | sort.Strings(fieldNames) |
| 80 | var zapFields []zap.Field |
| 81 | for _, k := range fieldNames { |
| 82 | zapFields = append(zapFields, zap.Any(k, logFields[k])) |
| 83 | } |
| 84 | logFunc(e.Message(), zapFields...) |
| 85 | return nil |
| 86 | } |