代码拉取完成,页面将自动刷新
使用go get 安装
go get gitee.com/klogsdk/klog-go-sdk
KLog客户端是线程安全的。在整个进程内您可以只创建一个KLog客户端,并重复使用。
import (
"gitee.com/klogsdk/klog-go-sdk/klog"
"time"
)
func main() {
// 您在金山云的主账户或子账户的 ACCESS KEY ID
accessKey = "your secret_key"
// 您在金山云的主账户或子账户的 SECRET KEY ID
secretKey = "your secret_key"
// 您的日志项目所在地区的入口地址,该地址可以在金山云控制台日志服务的项目概览中查到。
// 支持 http 和 https
endpoint = "https://klog-cn-beijing.ksyun.com"
// 创建KLog客户端
client := klog.NewClient(&klog.ClientOptions{
AccessKey: accessKey,
SecretKey: secretKey,
Endpoint: endpoint,
})
}
// 异步发送一条文本日志
err := client.PushString("your_project_name", "your_pool_name", "log_source_name", "log_file_path", "hahaha1", time.Now().UnixMilli())
KLog支持protobuf类型的日志。注意:同一日志池各条日志的数据结构应该保持一致。
// 异步发送一条protobuf日志
pbLog := &klog.Log{Time: time.Now().UnixMilli()}
pbLog.Contents = append(pbLog.Contents, &klog.Log_Content{
Key: "key1",
Value: "hahaha4",
})
pbLog.Contents = append(pbLog.Contents, &klog.Log_Content{
Key: "key2",
Value: "hahaha5",
})
err := client.Push("your_project_name", "your_pool_name", "log_source_name", "log_file_path", pbLog)
KLog客户端默认是异步发送数据的,客户端内部的发送间隔为每2秒,或每批达到3MB,或每批达到4096条。 这样的好处有:
注意:
Client.Flush()
。// 立即发送客户端缓冲队列中还未发送的日志。
client.Flush(true)
Client.Push()
之后调用Client.Flush()
,可实现同步发送。但通常不建议这么做。创建一个KLog客户端初始化选项,其参数如下:
Endpoint
必填。您的日志项目所在地区的入口地址,该地址可以在金山云控制台日志服务的项目概览中查到。支持http
和https
。Credentials
选填。此项为空时,AccessKey
和SecretKey
不可为空。AccessKey
选填。您在金山云的主账户或子账户的ACCESS KEY ID
。SecretKey
选填。您在金山云的主账户或子账户的SECRET KEY ID
。RateLimit
限制发送速率为每秒多少条。此项配置可降低CPU使用率,但会降低发送速率,在日志较多时,缓冲队列可能会满。默认为0,即不限制。DownSampleRate
降采样率。例如设置为0.15时,将只发送15%的日志,其余丢弃。此项配置可降低CPU使用率。默认为1,即发送所有日志。MaxRetries
发送失败后的重试次数,达到次数后如果仍然失败则丢弃日志。Logger
设置客户端输出自身运行状态的日志对象。默认为打印到stdout。LogLevel
客户端内部日志打印level。默认为service.LevelInfo。HTTPClient
客户端所使用的http客户端。DropIfPoolNotExists
如果服务器返回日志池不存在,是否丢弃日志。默认为false
,即不丢弃。上传一条日志。参数如下:
projectName
必填。项目名称logPoolName
必填。日志池名称source
日志来源,如主机名、ip等,用于进行日志上下文查询filename
日志文件路径,用于进行日志上下文查询log
必填。日志数据,protobuf类型。上传一条文本日志。参数如下:
projectName
必填。项目名称logPoolName
必填。日志池名称message
必填。日志数据,字符串类型。source
日志来源,如主机名、ip等,用于进行日志上下文查询filename
日志文件路径,用于进行日志上下文查询timestamp
日志时间戳,UNIX毫秒值。立即发送客户端缓冲队列中还未发送的日志。
wait
必填。是否等待发送结束获取发送统计
获取发送统计距离上次调用GetStatDelta()的增量,
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。