diff --git a/pkg/client/grpc/config.go b/pkg/client/grpc/config.go index 0147d5fd1a..16e67714d0 100644 --- a/pkg/client/grpc/config.go +++ b/pkg/client/grpc/config.go @@ -58,7 +58,7 @@ func DefaultConfig() *Config { dialOptions: []grpc.DialOption{ grpc.WithInsecure(), }, - logger: xlog.Jupiter(), + logger: xlog.Jupiter().Named(ecode.ModClientGrpc), BalancerName: roundrobin.Name, // round robin by default DialTimeout: cast.ToDuration("3s"), ReadTimeout: cast.ToDuration("1s"), diff --git a/pkg/client/redisgo/config.go b/pkg/client/redisgo/config.go index 7578e517a0..c329a2693a 100644 --- a/pkg/client/redisgo/config.go +++ b/pkg/client/redisgo/config.go @@ -9,6 +9,7 @@ import ( cfg "github.com/douyu/jupiter/pkg/conf" "github.com/douyu/jupiter/pkg/core/constant" + "github.com/douyu/jupiter/pkg/core/ecode" "github.com/douyu/jupiter/pkg/util/xdebug" "github.com/douyu/jupiter/pkg/xlog" ) @@ -87,7 +88,7 @@ func DefaultConfig() *Config { EnableMetricInterceptor: true, EnableTraceInterceptor: true, SlowLogThreshold: cast.ToDuration("250ms"), - logger: xlog.Jupiter().With(xlog.FieldMod("redigo")), + logger: xlog.Jupiter().Named(ecode.ModClientRedis), OnDialError: "panic", } } diff --git a/pkg/client/resty/resty.go b/pkg/client/resty/resty.go index 8850416c7e..3c18d08308 100644 --- a/pkg/client/resty/resty.go +++ b/pkg/client/resty/resty.go @@ -23,6 +23,7 @@ import ( "github.com/alibaba/sentinel-golang/core/base" "github.com/douyu/jupiter/pkg/conf" "github.com/douyu/jupiter/pkg/core/constant" + "github.com/douyu/jupiter/pkg/core/ecode" "github.com/douyu/jupiter/pkg/core/metric" "github.com/douyu/jupiter/pkg/core/sentinel" "github.com/douyu/jupiter/pkg/core/xtrace" @@ -110,7 +111,7 @@ func DefaultConfig() *Config { Timeout: cast.ToDuration("3000ms"), EnableAccessLog: false, EnableSentinel: true, - logger: xlog.Jupiter().With(xlog.FieldMod("resty")), + logger: xlog.Jupiter().Named(ecode.ModeClientResty), } } @@ -235,7 +236,7 @@ func (config *Config) Build() (*resty.Client, error) { func (c *Config) MustBuild() *resty.Client { cc, err := c.Build() if err != nil { - xlog.Jupiter().Panic("resty build failed", zap.Error(err), zap.Any("config", c)) + c.logger.Panic("resty build failed", zap.Error(err), zap.Any("config", c)) } return cc diff --git a/pkg/client/rocketmq/init.go b/pkg/client/rocketmq/init.go index 121e7cef32..6d94177687 100644 --- a/pkg/client/rocketmq/init.go +++ b/pkg/client/rocketmq/init.go @@ -20,19 +20,17 @@ import ( "runtime" "github.com/apache/rocketmq-client-go/v2/primitive" - "github.com/apache/rocketmq-client-go/v2/rlog" + "github.com/douyu/jupiter/pkg/core/ecode" "github.com/douyu/jupiter/pkg/xlog" "go.uber.org/zap" ) func init() { - rlog.SetLogLevel("debug") - rlog.SetLogger(&mqLogger{xlog.Jupiter()}) primitive.PanicHandler = func(i interface{}) { stack := make([]byte, 1024) length := runtime.Stack(stack, true) fmt.Fprint(os.Stderr, "[rocketmq panic recovery]\n", string(stack[:length])) - xlog.Jupiter().Error("rocketmq panic recovery", zap.Any("error", i)) + xlog.Jupiter().Named(ecode.ModeClientRocketMQ).Error("rocketmq panic recovery", zap.Any("error", i)) } } diff --git a/pkg/core/application/application.go b/pkg/core/application/application.go index 000c00b9ac..7697186b24 100644 --- a/pkg/core/application/application.go +++ b/pkg/core/application/application.go @@ -32,6 +32,7 @@ import ( "github.com/douyu/jupiter/pkg/core/ecode" "github.com/douyu/jupiter/pkg/core/executor" "github.com/douyu/jupiter/pkg/core/hooks" + "github.com/douyu/jupiter/pkg/core/rocketmq" "github.com/douyu/jupiter/pkg/core/signals" "github.com/douyu/jupiter/pkg/core/xgrpclog" "github.com/douyu/jupiter/pkg/flag" @@ -110,11 +111,15 @@ func (app *Application) initialize() { _ = app.parseFlags() _ = app.printBanner() - - xgrpclog.SetLogger(xlog.Jupiter()) + app.initLogger() }) } +func (app *Application) initLogger() { + xgrpclog.SetLogger(xlog.Jupiter()) + rocketmq.SetLogger(xlog.Jupiter()) +} + // // start up application // // By default the startup composition is: // // - parse config, watch, version flags diff --git a/pkg/core/ecode/unified.go b/pkg/core/ecode/unified.go index 92a077be15..2436622229 100644 --- a/pkg/core/ecode/unified.go +++ b/pkg/core/ecode/unified.go @@ -109,16 +109,33 @@ const ( ModApp = "app" // ModProc ... ModProc = "proc" + // ModGrpcServer ... ModGrpcServer = "server.grpc" + // ModHTTPServer ... + ModEchoServer = "server.echo" + + ModCacheFreecache = "cache.freecache" + // ModRegistryETCD ... ModRegistryETCD = "registry.etcd" + // ModClientETCD ... ModClientETCD = "client.etcd" // ModClientGrpc ... ModClientGrpc = "client.grpc" - // ModClientMySQL ... - ModClientMySQL = "client.mysql" + // ModeClientRocketMQ ... + ModeClientRocketMQ = "client.rocketmq" + // ModClientRedis ... + ModClientRedis = "client.redis" + // ModeClientResty ... + ModeClientResty = "client.resty" + + // ModStoreMySQL ... + ModStoreMySQL = "store.mysql" + // ModStoreMongo ... + ModStoreMongo = "store.mongo" + // ModXcronETCD ... ModXcronETCD = "xcron.etcd" ) diff --git a/pkg/client/rocketmq/log.go b/pkg/core/rocketmq/log.go similarity index 87% rename from pkg/client/rocketmq/log.go rename to pkg/core/rocketmq/log.go index c80903ba76..4e78571b72 100644 --- a/pkg/client/rocketmq/log.go +++ b/pkg/core/rocketmq/log.go @@ -15,6 +15,8 @@ package rocketmq import ( + "github.com/apache/rocketmq-client-go/v2/rlog" + "github.com/douyu/jupiter/pkg/core/ecode" "go.uber.org/zap" ) @@ -22,6 +24,18 @@ type mqLogger struct { logger *zap.Logger } +const ( + defaultCallerSkip = 2 +) + +func SetLogger(logger *zap.Logger) { + rlog.SetLogLevel("debug") + rlog.SetLogger(&mqLogger{ + logger: logger.Named(ecode.ModeClientRocketMQ). + WithOptions(zap.AddCallerSkip(defaultCallerSkip)), + }) +} + func (l *mqLogger) Debug(msg string, fields map[string]interface{}) { if msg == "" && len(fields) == 0 { return diff --git a/pkg/core/xgrpclog/logger.go b/pkg/core/xgrpclog/logger.go index d5c4440992..4d98b86e6e 100644 --- a/pkg/core/xgrpclog/logger.go +++ b/pkg/core/xgrpclog/logger.go @@ -3,6 +3,7 @@ package xgrpclog import ( "fmt" + "github.com/douyu/jupiter/pkg/core/ecode" "github.com/douyu/jupiter/pkg/xlog" "go.uber.org/zap" "go.uber.org/zap/zapcore" @@ -30,7 +31,7 @@ var ( // SetLogger sets loggerWrapper to grpclog func SetLogger(logger *xlog.Logger) { - logger = logger.WithOptions(zap.AddCallerSkip(defaultCallerSkip)) + logger = logger.Named(ecode.ModClientGrpc).WithOptions(zap.AddCallerSkip(defaultCallerSkip)) grpclog.SetLoggerV2(&loggerWrapper{logger: logger, sugar: logger.Sugar()}) } diff --git a/pkg/registry/etcdv3/config.go b/pkg/registry/etcdv3/config.go index 6df57676b6..3a06fb0e17 100644 --- a/pkg/registry/etcdv3/config.go +++ b/pkg/registry/etcdv3/config.go @@ -53,7 +53,7 @@ func DefaultConfig() *Config { Config: etcdv3.DefaultConfig(), ReadTimeout: time.Second * 3, Prefix: "wsd-reg", - logger: xlog.Jupiter(), + logger: xlog.Jupiter().Named(ecode.ModRegistryETCD), ServiceTTL: cast.ToDuration("60s"), } } diff --git a/pkg/registry/etcdv3/registry.go b/pkg/registry/etcdv3/registry.go index 58e16c5477..4261cd88a9 100644 --- a/pkg/registry/etcdv3/registry.go +++ b/pkg/registry/etcdv3/registry.go @@ -59,9 +59,9 @@ var _ registry.Registry = new(etcdv3Registry) func newETCDRegistry(config *Config) (*etcdv3Registry, error) { if config.logger == nil { - config.logger = xlog.Jupiter() + config.logger = xlog.Jupiter().Named(ecode.ModRegistryETCD) } - config.logger = config.logger.With(xlog.FieldMod(ecode.ModRegistryETCD), xlog.FieldAddrAny(config.Config.Endpoints)) + config.logger = config.logger.With(xlog.FieldAddrAny(config.Config.Endpoints)) etcdv3Client, err := config.Config.Singleton() if err != nil { config.logger.Error("create etcdv3 client", xlog.FieldErrKind(ecode.ErrKindRequestErr), xlog.FieldErr(err)) @@ -164,7 +164,7 @@ func (reg *etcdv3Registry) WatchServices(ctx context.Context, prefix string) (ch // case addresses <- snapshot: case addresses <- *out: default: - xlog.Jupiter().Warn("invalid") + reg.logger.Warn("invalid event") } } }) diff --git a/pkg/server/xecho/config.go b/pkg/server/xecho/config.go index 58e35cd5a7..f4ee62d8c5 100644 --- a/pkg/server/xecho/config.go +++ b/pkg/server/xecho/config.go @@ -26,9 +26,6 @@ import ( "go.uber.org/zap" ) -//ModName named a mod -const ModName = "server.echo" - //Config HTTP config type Config struct { Host string @@ -56,7 +53,7 @@ func DefaultConfig() *Config { Debug: false, Deployment: constant.DefaultDeployment, SlowQueryThresholdInMilli: 500, // 500ms - logger: xlog.Jupiter().With(xlog.FieldMod(ModName)), + logger: xlog.Jupiter().Named(ecode.ModEchoServer), EnableTLS: false, CertFile: "cert.pem", PrivateFile: "private.pem", diff --git a/pkg/server/xgrpc/config.go b/pkg/server/xgrpc/config.go index d84191c301..0051d5cc6e 100644 --- a/pkg/server/xgrpc/config.go +++ b/pkg/server/xgrpc/config.go @@ -95,7 +95,7 @@ func DefaultConfig() *Config { DisableTrace: false, EnableTLS: false, SlowQueryThresholdInMilli: 500, - logger: xlog.Jupiter().With(xlog.FieldMod("server.grpc")), + logger: xlog.Jupiter().Named(ecode.ModGrpcServer), serverOptions: []grpc.ServerOption{}, streamInterceptors: []grpc.StreamServerInterceptor{}, unaryInterceptors: []grpc.UnaryServerInterceptor{}, diff --git a/pkg/store/mongox/init.go b/pkg/store/mongox/init.go index 88e76292b1..779a8fbcc0 100644 --- a/pkg/store/mongox/init.go +++ b/pkg/store/mongox/init.go @@ -4,7 +4,6 @@ import ( "net/http" "github.com/douyu/jupiter/pkg/core/application" - "github.com/douyu/jupiter/pkg/xlog" jsoniter "github.com/json-iterator/go" "go.mongodb.org/mongo-driver/mongo" ) @@ -31,5 +30,3 @@ func init() { _ = jsoniter.NewEncoder(w).Encode(rets) }) } - -var _logger = xlog.Jupiter().With(xlog.FieldMod("mongodb")) diff --git a/pkg/store/mongox/mongo.go b/pkg/store/mongox/mongo.go index 6f33dff1d0..39b1e8f696 100644 --- a/pkg/store/mongox/mongo.go +++ b/pkg/store/mongox/mongo.go @@ -28,7 +28,7 @@ func newSession(config *Config) *mongo.Client { clientOpts.SocketTimeout = &config.SocketTimeout client, err := mongo.Connect(context.Background(), clientOpts.ApplyURI(config.DSN)) if err != nil { - _logger.Panic("dial mongo", xlog.FieldAddr(config.DSN), xlog.Any("error", err)) + config.logger.Panic("dial mongo", xlog.FieldAddr(config.DSN), xlog.Any("error", err)) } _instances.Store(config.Name, client) @@ -37,10 +37,10 @@ func newSession(config *Config) *mongo.Client { func isConfigErr(config *Config) { if config.SocketTimeout == time.Duration(0) { - _logger.Panic("invalid config", xlog.FieldExtMessage("socketTimeout")) + config.logger.Panic("invalid config", xlog.FieldExtMessage("socketTimeout")) } if config.PoolLimit == 0 { - _logger.Panic("invalid config", xlog.FieldExtMessage("poolLimit")) + config.logger.Panic("invalid config", xlog.FieldExtMessage("poolLimit")) } } diff --git a/pkg/store/mongox/option.go b/pkg/store/mongox/option.go index 3c52f5e870..ecc365a399 100644 --- a/pkg/store/mongox/option.go +++ b/pkg/store/mongox/option.go @@ -5,9 +5,12 @@ import ( "github.com/douyu/jupiter/pkg/conf" "github.com/douyu/jupiter/pkg/core/constant" + "github.com/douyu/jupiter/pkg/core/ecode" "github.com/douyu/jupiter/pkg/core/singleton" + "github.com/douyu/jupiter/pkg/xlog" "github.com/spf13/cast" "go.mongodb.org/mongo-driver/mongo" + "go.uber.org/zap" ) // Config ... @@ -20,6 +23,8 @@ type ( SocketTimeout time.Duration `json:"socketTimeout" toml:"socketTimeout"` // 连接池大小(最大连接数) PoolLimit int `json:"poolLimit" toml:"poolLimit"` + + logger *zap.Logger } ) @@ -43,6 +48,7 @@ func DefaultConfig() *Config { return &Config{ SocketTimeout: cast.ToDuration("5s"), PoolLimit: 100, + logger: xlog.Jupiter().Named(ecode.ModStoreMongo), } }