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
|
6 months ago | |
---|---|---|
context | 11 months ago | |
klog | 1 year ago | |
request | 7 months ago | |
tracing | 11 months ago | |
.gitignore | 11 months ago | |
Makefile | 2 years ago | |
README.md | 1 year ago | |
core.go | 11 months ago | |
file.go | 1 year ago | |
file_test.go | 1 year ago | |
go.mod | 6 months ago | |
log.go | 6 months ago | |
log_test.go | 6 months ago | |
logger.go | 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