This commit is contained in:
wyh 2022-01-25 10:50:05 +08:00
parent b2e7135ad5
commit f63b46bd83
4 changed files with 97 additions and 12 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
*.sum
logs

28
go.mod
View File

@ -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
)

58
logger.go Normal file
View File

@ -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
}

20
main.go
View File

@ -16,14 +16,11 @@ import (
)
const (
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{}