package main
import (
"context"
"fmt"
"github.com/1005281342/log"
)
func main() {
var ctx = context.Background()
ctx = log.SetTraceID(ctx, "jesontest20210124-2")
var logger, err = log.WithContext(ctx,
log.WithAddress("127.0.0.1:5000"),
log.WithAppName("jeson"),
log.WithFuncName("test"),
)
if err != nil {
fmt.Printf("new logger failed: %+v \n", err)
return
}
logger.Error("test Error")
logger.Errorf("test Error%s", "f")
logger.Errorv("test Errorv")
logger.Info("test Info")
logger.Infof("test Info%s", "f")
logger.Infov("test Infov")
logger.Slow("test Slow")
logger.Slowf("test Slow%s", "f")
logger.Slowv("test Slowv")
}
# docker-compose.yml
environment:
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
ELASTIC_PASSWORD: changeme # 修改密码
// 主要逻辑代码
// 关注创建日志部分即可
package logic
import (
"context"
"time"
"github.com/1005281342/gozerorpcdemo/gozerorpcdemo"
"github.com/1005281342/gozerorpcdemo/internal/svc"
"github.com/1005281342/log"
"github.com/tal-tech/go-zero/core/logx"
)
type PingLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
}
type ELKLogger struct {
log.Logger
}
func (e *ELKLogger) WithDuration(d time.Duration) logx.Logger {
e.Logger.WithDuration(d)
return e
}
func NewPingLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PingLogic {
return &PingLogic{
ctx: ctx,
svcCtx: svcCtx,
//Logger: logx.WithContext(ctx),
}
}
func (l *PingLogic) Ping(in *gozerorpcdemo.Request) (*gozerorpcdemo.Response, error) {
log.SetTraceID(l.ctx, "jesontest go-zero demo")
var (
logger logx.Logger
loggerELK, err = log.WithContext(l.ctx,
log.WithAddress("127.0.0.1:5000"),
log.WithAppName("gozerorpcdemo"),
log.WithFuncName("Ping"),
)
)
if err != nil {
logger = logx.WithContext(l.ctx)
logger.Errorf("err: %+v", err)
} else {
logger = &ELKLogger{Logger: loggerELK}
}
var out = &gozerorpcdemo.Response{Pong: "OK. " + in.Ping}
logger.Infof("out: %+v", out)
return out, nil
}
package main
import (
"context"
"github.com/1005281342/gozerorpcdemo/gozerorpcdemo"
"github.com/1005281342/gozerorpcdemo/gozerorpcdemoclient"
"github.com/tal-tech/go-zero/zrpc"
"log"
)
func main() {
var zcli, _ = zrpc.NewClientWithTarget("127.0.0.1:8080")
var cli = gozerorpcdemoclient.NewGozerorpcdemo(zcli)
var rsp, err = cli.Ping(context.Background(), &gozerorpcdemo.Request{Ping: "Ping"})
if err != nil {
log.Fatalf("ping failed: %s", err.Error())
}
log.Printf("rsp %+v \n", rsp)
}