| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package log
- import (
- "fmt"
- "github.com/zeromicro/go-zero/core/logx"
- "go.uber.org/zap"
- )
- const callerSkipOffset = 3
- type ZapWriter struct {
- logger *zap.Logger
- }
- func NewZapWriter(opts ...zap.Option) logx.Writer {
- opts = append(opts, zap.AddCallerSkip(callerSkipOffset))
- logger, _ := zap.NewProduction(opts...)
- defer logger.Sync()
- return &ZapWriter{
- logger: logger,
- }
- }
- func (w *ZapWriter) Alert(v interface{}) {
- w.logger.Error(fmt.Sprint(v))
- }
- func (w *ZapWriter) Close() error {
- return w.logger.Sync()
- }
- func (w *ZapWriter) Debug(v interface{}, fields ...logx.LogField) {
- w.logger.Debug(fmt.Sprint(v), toZapFields(fields...)...)
- }
- func (w *ZapWriter) Error(v interface{}, fields ...logx.LogField) {
- w.logger.Error(fmt.Sprint(v), toZapFields(fields...)...)
- }
- func (w *ZapWriter) Info(v interface{}, fields ...logx.LogField) {
- w.logger.Info(fmt.Sprint(v), toZapFields(fields...)...)
- }
- func (w *ZapWriter) Severe(v interface{}) {
- w.logger.Fatal(fmt.Sprint(v))
- }
- func (w *ZapWriter) Slow(v interface{}, fields ...logx.LogField) {
- w.logger.Warn(fmt.Sprint(v), toZapFields(fields...)...)
- }
- func (w *ZapWriter) Stack(v interface{}) {
- w.logger.Error(fmt.Sprint(v), zap.Stack("stack"))
- }
- func (w *ZapWriter) Stat(v interface{}, fields ...logx.LogField) {
- w.logger.Info(fmt.Sprint(v), toZapFields(fields...)...)
- }
- func toZapFields(fields ...logx.LogField) []zap.Field {
- zapFields := make([]zap.Field, 0, len(fields))
- for _, f := range fields {
- zapFields = append(zapFields, zap.Any(f.Key, f.Value))
- }
- return zapFields
- }
|