最近更新时间:2021-11-29 19:29:21
日志服务KLog产品为用户提供数据上传的API,API文档详见Putlogs。接下来介绍如何把原始日志数据序列化成如下格式的Protocol Buffer数据流,然后才能通过API写入服务端。
按照如下格式,生成一个klog.proto文件
syntax = "proto3";
package klog;
message Log
{
message Content
{
required string key = 1; // 每组字段的 key
required string value = 2; // 每组字段的 value
}
required int64 time = 1; // 时间戳,UNIX时间格式
repeated Content contents = 2; // 一条日志里的多个kv组合
}
message LogGroup
{
repeated Log logs = 1; // 多条日志合成的日志数组
optional string reserved = 2; // 目前暂无效用
optional string filename = 3; // 日志文件名
optional string source = 4; // 日志来源,一般使用机器IP
}
根据上面的内容,定义数据的报文格式后,运行Protocol Buffer编译器,把上面的klog.proto文件编译成特定语言的类。这些类提供了简单的方法访问每个字段,像是访问类的方法一样将结构序列化或反序列化。
这里使用proto编辑器生成Java语言的文件,在klog.proto文件的同一目录下,执行如下编辑命令
protoc.exe --java_out=./ klog.proto
编辑成功后,输出对应语言的代码文件,这里会生成klog.java文件。
将生成的klog.Java和klog.proto文件复制到工程目录下参与编译就可以。
纯净模式