日记
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
otto ad8ab83fd2 up 6 months ago
context up 11 months ago
klog up 1 year ago
request up 7 months ago
tracing up 11 months ago
.gitignore up 11 months ago
Makefile up 2 years ago
README.md debug 1 year ago
core.go up 11 months ago
file.go up 1 year ago
file_test.go up 1 year ago
go.mod up 6 months ago
log.go up 6 months ago
log_test.go up 6 months ago
logger.go up 6 months ago

README.md

日志客戶端结合kafka-es

系统架构图

Log Agent:日志收集客户端,用来收集服务器上的日志。
Kafka:高吞吐量的分布式队列,日志写入口。
Log Server:接受处理的日志信息。
Elasticsearch:日志数据存储库。

日志服务端

使用

配置文件 config.yaml


log:
  level: "debug"     # 日志 debug:调试, panic:详情调试,info|nil:不打印
  name: "room"      # 日志链名称
  debug: ture       # debug模式开始将全部日志都不推送到日志服务
  kafka:            # kafka 配置具体参考
    addr:           
      - "127.0.0.1:9092"
import (
    "git.gz.internal.jumaiyx.cn/pkg/log"
)

// 初始化一个日志客户端
logger := log.NewLogger(c.Get().Log)

// 中间件使用, 更有效追踪日志【暂时代替链路】
var opts = []grpc.ServerOption{
    grpc.Middleware(
        logger.Server(),
    ),
}
srv := grpc.NewServer(opts...)

// 服务中可以通过wire方式注入使用
func wireApp(*conf.Server, *conf.Data, log.Logger) (*kratos.App, func(), error) {
    panic(wire.Build(server.ProviderServerSet, data.ProviderSet, biz.ProviderSet, service.ProviderServiceSet, newApp))
}

自动化注入

// todo 开发中

打印日志


// 打印并写入日志服务
logger.Info("打印一条数据")
// # [INFO] req_id:[4887c29565d3d9b1] 打印一条数据
logger.Warn("Warn", "222", "333", "444", "555")
logger.Error("Error", "222", "333", "444", "555")
logger.Fatal("Fatal", "222", "333", "444", "555")

// Debug级别仅控制台调试使用,不会写入到日志服务。
logger.Debug(" message")
// # msg=debug  message