2020-04-01 11:28:11 +08:00
|
|
|
|
# grlogs
|
2020-05-05 16:14:19 +08:00
|
|
|
|
本库为争游内部日志公共库, 该库基于 beegoLogger 基础上完善, 目前支持的引擎有 file、console、net、smtp、es、alisls
|
2020-04-01 11:28:11 +08:00
|
|
|
|
|
2020-04-28 17:17:21 +08:00
|
|
|
|
## 代码示例
|
|
|
|
|
|
|
|
|
|
1. 引入
|
2020-04-29 11:28:18 +08:00
|
|
|
|
```
|
2023-03-13 19:42:29 +08:00
|
|
|
|
import "golib.gaore.com/GaoreGo/haiwai-grlogs"
|
2020-04-28 17:17:21 +08:00
|
|
|
|
```
|
|
|
|
|
2. 简单用法
|
2020-04-29 11:28:18 +08:00
|
|
|
|
```
|
2020-04-28 17:17:21 +08:00
|
|
|
|
grlogs.Get("test", 128).Info("hello word")
|
|
|
|
|
grlogs.Get("test").Warning("hello word")
|
|
|
|
|
```
|
2020-04-28 17:38:45 +08:00
|
|
|
|
`Get` 方法中 `lable` 参数为标签,为识别分类所用,在Grlogs里一个分类使用一个管道进行日志
|
|
|
|
|
|
2020-04-28 17:17:21 +08:00
|
|
|
|
3. 进阶用法
|
2020-04-29 11:28:18 +08:00
|
|
|
|
```
|
2020-04-28 17:17:21 +08:00
|
|
|
|
logger := grlogs.GetEs("wifi")
|
|
|
|
|
logger.SetAdapter(LevelAll, AdapterElasticSearch)
|
|
|
|
|
logger.SetAdapter(LevelInfo, AdapterFile)
|
|
|
|
|
logger.Critical("出错了")
|
|
|
|
|
logger.Info("出错了")
|
|
|
|
|
```
|
|
|
|
|
|
2020-05-06 14:33:04 +08:00
|
|
|
|
4. 如果需要写入es 或 alils, 必须设置环境变量 `GRLOG_APP_NAME`, 不能有反斜杠, 如
|
2020-04-28 17:17:21 +08:00
|
|
|
|
```shell script
|
|
|
|
|
export GRLOG_APP_NAME=mkt.gaore.com;
|
|
|
|
|
```
|
2020-04-28 19:56:24 +08:00
|
|
|
|
还需要额外引入es库,完成初始化动作
|
|
|
|
|
```go
|
2023-03-13 19:42:29 +08:00
|
|
|
|
import _ "haiwai-grlogs/logs/es"
|
2020-04-28 19:56:24 +08:00
|
|
|
|
```
|
2020-04-28 17:17:21 +08:00
|
|
|
|
|
2020-05-06 14:33:04 +08:00
|
|
|
|
```go
|
2023-03-13 19:42:29 +08:00
|
|
|
|
import _ "haiwai-grlogs/logs/alils"
|
2020-05-06 14:33:04 +08:00
|
|
|
|
```
|
|
|
|
|
|
2020-04-29 11:28:18 +08:00
|
|
|
|
5. 文件日志会写入到 `./runtime/logs/` 文件夹 **请务必在项目构建阶段创建该目录**
|
|
|
|
|
|
|
|
|
|
|
2020-05-06 14:32:26 +08:00
|
|
|
|
6. `AliLS` 日志接入的是阿里SLS GOSDK , 下面是关于 [https://github.com/aliyun/aliyun-log-go-sdk/tree/master/producer] 描述
|
|
|
|
|
|
|
|
|
|
producer提供了两种关闭模式,分为有限关闭和安全关闭,安全关闭会等待producer中缓存的所有的数据全部发送完成以后在关闭producer,有限关闭会接收用户传递的一个参数值,时间单位为秒,当开始关闭producer的时候开始计时,超过传递的设定值还未能完全关闭producer的话会强制退出producer,此时可能会有部分数据未被成功发送而丢失。
|
2020-05-06 14:33:34 +08:00
|
|
|
|
|
2020-05-06 14:32:26 +08:00
|
|
|
|
所以用了aliLS 的 adapter 时,最好调用`grlogs.Close()` 或 `grlogs.CloseAll()` 方法安全关闭通道,以刷新缓冲区
|
|
|
|
|
|
|
|
|
|
7. 完整示例
|
2020-04-29 11:28:18 +08:00
|
|
|
|
```go
|
|
|
|
|
package grlogs
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
2023-03-13 19:42:29 +08:00
|
|
|
|
_ "haiwai-grlogs/logs/es"
|
2020-04-29 11:28:18 +08:00
|
|
|
|
"testing"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestGetLogger(t *testing.T) {
|
|
|
|
|
// 新建 channel 大小为128 标识为nds 日志通道 , Get 的方法 默认带 console 和 file 输出
|
2020-05-06 14:34:31 +08:00
|
|
|
|
l := grlogs.Get("nds", 128).SetAdapter(LevelAll, AdapterElasticSearch)
|
2020-04-29 11:28:18 +08:00
|
|
|
|
l.Debug("我正在调试")
|
|
|
|
|
l.Critical("出错了")
|
|
|
|
|
|
|
|
|
|
// 复用 nds 的日志通道
|
2020-05-06 14:34:31 +08:00
|
|
|
|
grlogs.Get("nds").Warning("hadoee %s", time.Now().Format(time.RFC1123))
|
|
|
|
|
grlogs.Get("nds").Warning("hadoee %s", time.Now().Format(time.RFC1123))
|
2020-04-29 11:28:18 +08:00
|
|
|
|
|
|
|
|
|
// 新建 channel 大小为默认 标识为wifi 日志通道 , GetEs 的方法 默认带 console 和 file 和 elatisearch 输出
|
2020-05-06 14:34:31 +08:00
|
|
|
|
grlogs.GetEs("wifi")
|
2020-04-29 11:28:18 +08:00
|
|
|
|
for i := 0; i < 10; i++ {
|
2020-05-06 14:34:31 +08:00
|
|
|
|
grlogs.Get("wifi").Warning("Warning")
|
|
|
|
|
grlogs.Get("wifi").Warn("Warn")
|
|
|
|
|
grlogs.Get("wifi").Debug("Debug")
|
|
|
|
|
grlogs.Get("wifi").Error("Error")
|
|
|
|
|
grlogs.Get("wifi").Notice("Notice")
|
|
|
|
|
grlogs.Get("wifi").Info("Info")
|
|
|
|
|
grlogs.Get("wifi").Alert("Alert")
|
2020-04-29 11:28:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Get("wifi").Critical("neoweiwoewe")
|
|
|
|
|
}
|
|
|
|
|
|
2020-05-06 14:32:26 +08:00
|
|
|
|
func TestDropAdapter(t *testing.T) {
|
2020-05-06 14:34:31 +08:00
|
|
|
|
grlogs.SetAdapter(LevelAll, AdapterAliLs)
|
|
|
|
|
grlogs.DropAdapter(AdapterAliLs)
|
|
|
|
|
grlogs.Informational(errors.New("he hello"))
|
|
|
|
|
grlogs.SetAdapter(LevelAll, AdapterAliLs)
|
|
|
|
|
grlogs.Debug(errors.New("he hello"))
|
|
|
|
|
grlogs.CloseAll()
|
2020-04-29 11:28:18 +08:00
|
|
|
|
}
|
|
|
|
|
```
|