From f63b46bd83d269ffeee0e235ea608645a9c6be6d Mon Sep 17 00:00:00 2001 From: wyhwyhwyh <573805736@qq.com> Date: Tue, 25 Jan 2022 10:50:05 +0800 Subject: [PATCH] fixed --- .gitignore | 1 + go.mod | 28 +++++++++++++++++++++++--- logger.go | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ main.go | 22 ++++++++++++--------- 4 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 logger.go diff --git a/.gitignore b/.gitignore index 68682a4..7df5754 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ *.sum +logs \ No newline at end of file diff --git a/go.mod b/go.mod index 9532cc1..ac907f0 100644 --- a/go.mod +++ b/go.mod @@ -3,11 +3,33 @@ module myschools.me/wyh/grpcservice go 1.17 require ( + github.com/gin-gonic/gin v1.7.7 + github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible + github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 + github.com/sirupsen/logrus v1.8.1 + golang.org/x/net v0.0.0-20220114011407-0dd24b26b47d + google.golang.org/grpc v1.43.0 + google.golang.org/protobuf v1.27.1 +) + +require ( + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-playground/locales v0.13.0 // indirect + github.com/go-playground/universal-translator v0.17.0 // indirect + github.com/go-playground/validator/v10 v10.4.1 // indirect github.com/golang/protobuf v1.5.2 // indirect - golang.org/x/net v0.0.0-20220114011407-0dd24b26b47d // indirect + github.com/jonboulle/clockwork v0.2.2 // indirect + github.com/json-iterator/go v1.1.9 // indirect + github.com/leodido/go-urn v1.2.0 // indirect + github.com/lestrrat-go/strftime v1.0.5 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect + github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect + github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/ugorji/go/codec v1.1.7 // indirect + golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/genproto v0.0.0-20220118154757-00ab72f36ad5 // indirect - google.golang.org/grpc v1.43.0 // indirect - google.golang.org/protobuf v1.27.1 // indirect + gopkg.in/yaml.v2 v2.2.8 // indirect ) diff --git a/logger.go b/logger.go new file mode 100644 index 0000000..991dc8f --- /dev/null +++ b/logger.go @@ -0,0 +1,58 @@ +package main + +import ( + "fmt" + "os" + "time" + + rotatelogs "github.com/lestrrat-go/file-rotatelogs" + "github.com/rifflock/lfshook" + log "github.com/sirupsen/logrus" +) + +func init() { + //日志初始化 + //log.SetOutput(os.Stdout) + log.SetLevel(log.DebugLevel) + log.AddHook(newLfsHook(72)) +} + +func newLfsHook(maxRemainCnt uint) log.Hook { + //检查与创建日志文件夹 + _, err := os.Stat("logs") + if os.IsNotExist(err) { + os.Mkdir("logs", 0755) + } + + logName := fmt.Sprintf(`logs/%s`, APPNAME) + writer, err := rotatelogs.New( + logName+"%Y%m%d.log", + // WithLinkName为最新的日志建立软连接,以方便随着找到当前日志文件 + rotatelogs.WithLinkName(logName), + + // WithRotationTime设置日志分割的时间,这里设置为一小时分割一次 + rotatelogs.WithRotationTime(24*time.Hour), + + // WithMaxAge和WithRotationCount二者只能设置一个, + // WithMaxAge设置文件清理前的最长保存时间, + // WithRotationCount设置文件清理前最多保存的个数。 + //rotatelogs.WithMaxAge(time.Hour*24), + rotatelogs.WithRotationCount(maxRemainCnt), + ) + + if err != nil { + panic("config local file system for logger error: " + err.Error()) + } + log.SetLevel(log.DebugLevel) + + lfsHook := lfshook.NewHook(lfshook.WriterMap{ + log.DebugLevel: writer, + log.InfoLevel: writer, + log.WarnLevel: writer, + log.ErrorLevel: writer, + log.FatalLevel: writer, + log.PanicLevel: writer, + }, &log.TextFormatter{DisableColors: true}) + + return lfsHook +} diff --git a/main.go b/main.go index 27f8036..d568ffe 100644 --- a/main.go +++ b/main.go @@ -16,14 +16,11 @@ import ( ) const ( - port = "8081" + APPNAME = "grpc-service" + port = "8081" ) func main() { - listen, err := net.Listen("tcp", "0.0.0.0:"+port) - if err != nil { - log.Fatal("err: %s", err.Error()) - } // 证书 creds, err := credentials.NewServerTLSFromFile("cert.pem", "key.pem") if err != nil { @@ -31,14 +28,21 @@ func main() { } // 传递进grpc options := []grpc.ServerOption{grpc.Creds(creds)} - // grpc服务 + // grpc服务 ...展开符 server := grpc.NewServer(options...) //服务注册 - pb.RegisterEmployeeServiceServer(server, new(employeeService)) + pb.RegisterEmployeeServiceServer(server, &employeeService{}) log.Println("grpc server started..." + port) - - server.Serve(listen) + tcp, err := net.ResolveTCPAddr("tcp", "0.0.0.0:"+port) + if err != nil { + log.Fatal(err.Error()) + } + tcpListener, err := net.ListenTCP("tcp", tcp) + if err != nil { + log.Fatal(err.Error()) + } + server.Serve(tcpListener) } type employeeService struct{}