|
- 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())
- },
-
- 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,
- }
-
- return l.SetLogger(logs.AdapterFile, c.String())
- } else {
- return err
- }
- },
-
- AdapterConsole: func(l *Logger, level Level) error {
- c := ConsoleLogConfig{Level: level}
- return l.SetLogger(logs.AdapterConsole, c.String())
- },
-
- AdapterElasticSearch: func(l *Logger, level Level) error {
- c := GenEsConfig(level)
- return l.SetLogger(logs.AdapterEs, c.String())
- },
-
- AdapterAliLs: func(l *Logger, level Level) error {
- c := GenAliConfig(level)
- return l.SetLogger(logs.AdapterAliLS, c.String())
- },
- }
-
- func GenAliConfig(level Level) *AliLSConfig {
- var project = "gr-go-project"
- var endpoint string
-
- intranet := os.Getenv("GRLOG_INTERNET") != "public"
- if intranet && (os.Getenv(envKey) == "development" || os.Getenv(envKey) == "testing") {
- intranet = false
- }
-
- if intranet {
- endpoint = "cn-hongkong-intranet.log.aliyuncs.com"
- } else {
- endpoint = "cn-hongkong.log.aliyuncs.com"
- }
- source := os.Getenv("GRLOG_SOURCE")
- appName := os.Getenv("GRLOG_APP_NAME")
- topic := os.Getenv("GRLOG_TOPIC")
- if topic == "" {
- topic = appName
- }
- c := &AliLSConfig{
- Project: project,
- Endpoint: endpoint,
- KeyID: "LTAI5tMA7iMGFfuc3xSRVCGQ",
- KeySecret: "z98EpzmYmgiVLKizxP7pMF4BPbHfPV",
- LogStore: appName,
- Topics: []string{topic},
- Source: source,
- Level: level,
- FlushWhen: 0,
- }
- return c
- }
-
- func GenEsConfig(level Level) *EsConfig {
- dsn := "http://es-cn-tl32xlfmu00015h34.public.elasticsearch.aliyuncs.com:9200/"
- if os.Getenv(envKey) == "production" || os.Getenv(envKey) == "" || os.Getenv(envKey) == "gray" {
- dsn = "http://es-cn-tl32xlfmu00015h34.elasticsearch.aliyuncs.com:9200/"
- }
-
- c := &EsConfig{
- Username: "kaifa_api",
- Password: "2quYX3bTeahO",
- 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...)
- }
|