package main import ( "net" "time" "github.com/cloudwego/kitex/pkg/klog" "github.com/cloudwego/kitex/pkg/rpcinfo" "github.com/cloudwego/kitex/server" kitexlogrus "github.com/kitex-contrib/obs-opentelemetry/logging/logrus" consul "github.com/kitex-contrib/registry-consul" "github.com/suyiiyii/hertz101/app/auth/conf" "github.com/suyiiyii/hertz101/app/auth/kitex_gen/auth/authservice" "go.uber.org/zap/zapcore" "gopkg.in/natefinch/lumberjack.v2" "os" ) func main() { // dal.Init() opts := kitexInit() svr := authservice.NewServer(new(AuthServiceImpl), opts...) err := svr.Run() if err != nil { klog.Error(err.Error()) } } func kitexInit() (opts []server.Option) { // address addr, err := net.ResolveTCPAddr("tcp", conf.GetConf().Kitex.Address) if err != nil { panic(err) } opts = append(opts, server.WithServiceAddr(addr)) // service info opts = append(opts, server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{ ServiceName: conf.GetConf().Kitex.Service, })) r, err := consul.NewConsulRegister(conf.GetConf().Registry.RegistryAddress[0]) if err != nil { klog.Fatal(err) } opts = append(opts, server.WithRegistry(r)) // klog logger := kitexlogrus.NewLogger() klog.SetLogger(logger) klog.SetLevel(conf.LogLevel()) asyncWriter := &zapcore.BufferedWriteSyncer{ WS: zapcore.AddSync(&lumberjack.Logger{ Filename: conf.GetConf().Kitex.LogFileName, MaxSize: conf.GetConf().Kitex.LogMaxSize, MaxBackups: conf.GetConf().Kitex.LogMaxBackups, MaxAge: conf.GetConf().Kitex.LogMaxAge, }), FlushInterval: time.Minute, } klog.SetOutput(asyncWriter) klog.SetOutput(os.Stdout) server.RegisterShutdownHook(func() { asyncWriter.Sync() }) return }