haiwai-grlogs/funtion.go

145 lines
3.3 KiB
Go
Raw Normal View History

package grlogs
import (
"fmt"
"github.com/astaxie/beego/logs"
"os"
"path"
"strings"
)
var adatperSetMapper = map[Adapter]func(l *Logger, level Level) error{
AdapterSocket: func(l *Logger, level Level) error {
c := ConnLogConfig{
ReconnectOnMsg: false,
Reconnect: true,
Net: "",
Addr: "127.0.0.1:9888",
Level: level,
}
return l.SetLogger(logs.AdapterConn, c.String())
},
2020-04-28 10:37:47 +08:00
AdapterFile: func(l *Logger, level Level) error {
if wd, err := os.Getwd(); err == nil {
c := FileLogConfig{
Filename: path.Join(wd, fmt.Sprintf("runtime/logs/%s.log", l.Lable)),
Level: level,
Maxlines: 0,
Daily: true,
Maxdays: 7,
Color: true,
Rotate: true,
}
2020-04-28 10:37:47 +08:00
return l.SetLogger(logs.AdapterFile, c.String())
} else {
return err
}
},
2020-04-28 10:37:47 +08:00
AdapterConsole: func(l *Logger, level Level) error {
c := ConsoleLogConfig{Level: level}
return l.SetLogger(logs.AdapterConsole, c.String())
},
2020-04-28 10:37:47 +08:00
AdapterElasticSearch: func(l *Logger, level Level) error {
2020-05-06 15:30:24 +08:00
c := GenEsConfig(level)
return l.SetLogger(logs.AdapterEs, c.String())
},
2020-05-04 21:10:20 +08:00
AdapterAliLs: func(l *Logger, level Level) error {
2020-05-06 15:30:24 +08:00
c := GenAliConfig(level)
return l.SetLogger(logs.AdapterAliLS, c.String())
},
}
2020-05-04 21:10:20 +08:00
2020-05-06 15:34:47 +08:00
func GenAliConfig(level Level) *AliLSConfig {
2023-03-13 19:42:29 +08:00
var project = "gr-go-project"
2020-05-06 15:30:24 +08:00
var endpoint string
2020-05-05 16:10:42 +08:00
2023-03-13 19:42:29 +08:00
intranet := os.Getenv("GRLOG_INTERNET") != "public"
if intranet && (os.Getenv(envkey) == "development" || os.Getenv(envkey) == "testing") {
intranet = false
2020-05-06 15:30:24 +08:00
}
2020-05-05 16:10:42 +08:00
2023-03-13 19:42:29 +08:00
if intranet {
endpoint = "cn-hongkong-intranet.log.aliyuncs.com"
} else {
endpoint = "cn-hongkong.log.aliyuncs.com"
}
source := os.Getenv("GRLOG_SOURCE")
2020-05-06 15:34:47 +08:00
c := &AliLSConfig{
2020-05-06 15:30:24 +08:00
Project: project,
Endpoint: endpoint,
2023-03-13 19:42:29 +08:00
KeyID: "LTAI5tMA7iMGFfuc3xSRVCGQ",
KeySecret: "z98EpzmYmgiVLKizxP7pMF4BPbHfPV",
LogStore: os.Getenv("GRLOG_APP_NAME"),
Topics: []string{os.Getenv("GRLOG_TOPIC")},
Source: source,
2020-05-06 15:30:24 +08:00
Level: level,
FlushWhen: 0,
}
return c
}
2020-05-04 21:10:20 +08:00
2020-05-06 15:34:47 +08:00
func GenEsConfig(level Level) *EsConfig {
2022-10-28 16:03:47 +08:00
dsn := "http://es-cn-tl32xlfmu00015h34.public.elasticsearch.aliyuncs.com:9200/"
2020-05-06 15:30:24 +08:00
if os.Getenv(envkey) == "prod" || os.Getenv(envkey) == "" || os.Getenv(envkey) == "gray" {
2022-10-28 16:03:47 +08:00
dsn = "http://es-cn-tl32xlfmu00015h34.elasticsearch.aliyuncs.com:9200/"
2020-05-06 15:30:24 +08:00
}
2020-05-06 15:34:47 +08:00
c := &EsConfig{
2022-10-31 15:41:38 +08:00
Username: "kaifa_api",
Password: "2quYX3bTeahO",
2020-05-06 15:30:24 +08:00
Dsn: dsn,
Level: level,
Index: os.Getenv("GRLOG_APP_NAME"),
}
return c
}
var adatperDropMapper = map[Adapter]func(l *Logger) error{
AdapterAliLs: func(l *Logger) error {
return l.BeeLogger.DelLogger(logs.AdapterAliLS)
},
AdapterFile: func(l *Logger) error {
return l.BeeLogger.DelLogger(logs.AdapterFile)
},
AdapterConsole: func(l *Logger) error {
return l.BeeLogger.DelLogger(logs.AdapterConsole)
},
AdapterElasticSearch: func(l *Logger) error {
return l.BeeLogger.DelLogger(logs.AdapterEs)
},
}
func formatLog(f interface{}, v ...interface{}) string {
var msg string
switch f.(type) {
case string:
msg = f.(string)
if len(v) == 0 {
return msg
}
if strings.Contains(msg, "%") && !strings.Contains(msg, "%%") {
//format string
} else {
//do not contain format char
msg += strings.Repeat(" %v", len(v))
}
default:
msg = fmt.Sprint(f)
if len(v) == 0 {
return msg
}
msg += strings.Repeat(" %v", len(v))
}
return fmt.Sprintf(msg, v...)
}