Browse Source

v1.2.1 增加es管道写入日志

tags/v1.2.2
liangzy 4 years ago
parent
commit
48f1a7b6ca
13 changed files with 41 additions and 15 deletions
  1. +1
    -1
      funtion.go
  2. +4
    -0
      log.go
  3. +5
    -1
      log_test.go
  4. +1
    -1
      logs/alils/alils.go
  5. +1
    -1
      logs/conn.go
  6. +1
    -1
      logs/console.go
  7. +13
    -1
      logs/es/es.go
  8. +1
    -1
      logs/file.go
  9. +1
    -1
      logs/jianliao.go
  10. +8
    -2
      logs/log.go
  11. +3
    -3
      logs/multifile.go
  12. +1
    -1
      logs/slack.go
  13. +1
    -1
      logs/smtp.go

+ 1
- 1
funtion.go View File

@@ -35,7 +35,7 @@ var adatperMapper = map[Adapter]func(l *Logger, level Level) error{
AdapterElasticSearch: func(l *Logger, level Level) error {

dsn := "http://es-cn-0pp1mm3hq000dnbh4.public.elasticsearch.aliyuncs.com:9200/"
if envkey == "prod" || envkey == "" {
if envkey == "prod" || envkey == "" || envkey == "gray" {
dsn = "http://es-cn-0pp1mm3hq000dnbh4.elasticsearch.aliyuncs.com:9200/"
}



+ 4
- 0
log.go View File

@@ -38,7 +38,11 @@ func New(label string, channelLens ...int64) (l *Logger, loaded bool) {
if !loaded {
l.Lable = label
l.BeeLogger = logs.NewLogger(channellens)
l.BeeLogger.Lable = label
l.Env = os.Getenv(envkey)
l.SetPrefix(fmt.Sprintf("[env:%s logger:%s]", os.Getenv(envkey), label))
l.EnableFuncCallDepth(true)
l.SetLogFuncCallDepth(2)
}
return
}


+ 5
- 1
log_test.go View File

@@ -11,5 +11,9 @@ func TestGetLogger(t *testing.T) {
l.Debug("我正在调试")
l.Critical("出错了")
Get("nds").Warning("hadoee %s", time.Now().Format(time.RFC1123))
l.Flush()

Get("wifi").SetAdapter(LevelAll, AdapterElasticSearch)
for i := 0; i < 10; i++ {
Get("wifi").Error("neoweiwoewe")
}
}

+ 1
- 1
logs/alils/alils.go View File

@@ -103,7 +103,7 @@ func (c *aliLSWriter) Init(jsonConfig string) (err error) {

// WriteMsg write message in connection.
// if connection is down, try to re-connect.
func (c *aliLSWriter) WriteMsg(when time.Time, msg string, level int) (err error) {
func (c *aliLSWriter) WriteMsg(when time.Time, msg string, level int, lable string, env string) (err error) {

if level > c.Level {
return nil


+ 1
- 1
logs/conn.go View File

@@ -48,7 +48,7 @@ func (c *connWriter) Init(jsonConfig string) error {

// WriteMsg write message in connection.
// if connection is down, try to re-connect.
func (c *connWriter) WriteMsg(when time.Time, msg string, level int) error {
func (c *connWriter) WriteMsg(when time.Time, msg string, level int, lable string, env string) error {
if level > c.Level {
return nil
}


+ 1
- 1
logs/console.go View File

@@ -73,7 +73,7 @@ func (c *consoleWriter) Init(jsonConfig string) error {
}

// WriteMsg write message in console.
func (c *consoleWriter) WriteMsg(when time.Time, msg string, level int) error {
func (c *consoleWriter) WriteMsg(when time.Time, msg string, level int, lable string, env string) error {
if level > c.Level {
return nil
}


+ 13
- 1
logs/es/es.go View File

@@ -23,6 +23,8 @@ func NewES() logs.Logger {

type esLogger struct {
*goes.Client
Username string `json:"username"`
Password string `json:"password"`
DSN string `json:"dsn"`
Level int `json:"level"`
IndexName string `json:"index"`
@@ -53,6 +55,8 @@ func (el *esLogger) Init(jsonconfig string) error {
}

conn := goes.NewClient(host, port)
conn.AuthUsername = el.Username
conn.AuthPassword = el.Password
conn.WithHTTPClient(cl)
el.Client = conn
}
@@ -60,7 +64,7 @@ func (el *esLogger) Init(jsonconfig string) error {
}

// WriteMsg will write the msg and level into es
func (el *esLogger) WriteMsg(when time.Time, msg string, level int) error {
func (el *esLogger) WriteMsg(when time.Time, msg string, level int, lable string, env string) error {
if level > el.Level {
return nil
}
@@ -69,6 +73,14 @@ func (el *esLogger) WriteMsg(when time.Time, msg string, level int) error {
vals["@timestamp"] = when.Format(time.RFC3339)
vals["@msg"] = msg
vals["@level"] = level
vals["level_string"] = logs.GetLevelString(level)
vals["env"] = env
vals["lable"] = lable

if el.IndexName == "" {
return errors.New("index name is empty")
}

d := goes.Document{
Index: fmt.Sprintf("%s-%04d.%02d.%02d", el.IndexName, when.Year(), when.Month(), when.Day()),
Type: "logs",


+ 1
- 1
logs/file.go View File

@@ -144,7 +144,7 @@ func (w *fileLogWriter) needRotateHourly(size int, hour int) bool {
}

// WriteMsg write logger message into file.
func (w *fileLogWriter) WriteMsg(when time.Time, msg string, level int) error {
func (w *fileLogWriter) WriteMsg(when time.Time, msg string, level int, lable string, env string) error {
if level > w.Level {
return nil
}


+ 1
- 1
logs/jianliao.go View File

@@ -30,7 +30,7 @@ func (s *JLWriter) Init(jsonconfig string) error {

// WriteMsg write message in smtp writer.
// it will send an email with subject and only this message.
func (s *JLWriter) WriteMsg(when time.Time, msg string, level int) error {
func (s *JLWriter) WriteMsg(when time.Time, msg string, level int, lable string, env string) error {
if level > s.Level {
return nil
}


+ 8
- 2
logs/log.go View File

@@ -86,7 +86,7 @@ type newLoggerFunc func() Logger
// Logger defines the behavior of a log provider.
type Logger interface {
Init(config string) error
WriteMsg(when time.Time, msg string, level int) error
WriteMsg(when time.Time, msg string, level int, lable string, env string) error
Destroy()
Flush()
}
@@ -122,6 +122,8 @@ type BeeLogger struct {
signalChan chan string
wg sync.WaitGroup
outputs []*nameLogger
Lable string
Env string
}

const defaultAsyncMsgLen = 1e3
@@ -155,6 +157,10 @@ func NewLogger(channelLens ...int64) *BeeLogger {
return bl
}

func GetLevelString(level int) string {
return levelPrefix[level]
}

// Async set the log to asynchronous and start the goroutine
func (bl *BeeLogger) Async(msgLen ...int64) *BeeLogger {
bl.lock.Lock()
@@ -235,7 +241,7 @@ func (bl *BeeLogger) DelLogger(adapterName string) error {

func (bl *BeeLogger) writeToLoggers(when time.Time, msg string, level int) {
for _, l := range bl.outputs {
err := l.WriteMsg(when, msg, level)
err := l.WriteMsg(when, msg, level, bl.Lable, bl.Env)
if err != nil {
fmt.Fprintf(os.Stderr, "unable to WriteMsg to adapter:%v,error:%v\n", l.name, err)
}


+ 3
- 3
logs/multifile.go View File

@@ -87,14 +87,14 @@ func (f *multiFileLogWriter) Destroy() {
}
}

func (f *multiFileLogWriter) WriteMsg(when time.Time, msg string, level int) error {
func (f *multiFileLogWriter) WriteMsg(when time.Time, msg string, level int, lable string, env string) error {
if f.fullLogWriter != nil {
f.fullLogWriter.WriteMsg(when, msg, level)
f.fullLogWriter.WriteMsg(when, msg, level, lable, env)
}
for i := 0; i < len(f.writers)-1; i++ {
if f.writers[i] != nil {
if level == f.writers[i].Level {
f.writers[i].WriteMsg(when, msg, level)
f.writers[i].WriteMsg(when, msg, level, lable, env)
}
}
}


+ 1
- 1
logs/slack.go View File

@@ -26,7 +26,7 @@ func (s *SLACKWriter) Init(jsonconfig string) error {

// WriteMsg write message in smtp writer.
// it will send an email with subject and only this message.
func (s *SLACKWriter) WriteMsg(when time.Time, msg string, level int) error {
func (s *SLACKWriter) WriteMsg(when time.Time, msg string, level int, lable string, env string) error {
if level > s.Level {
return nil
}


+ 1
- 1
logs/smtp.go View File

@@ -117,7 +117,7 @@ func (s *SMTPWriter) sendMail(hostAddressWithPort string, auth smtp.Auth, fromAd

// WriteMsg write message in smtp writer.
// it will send an email with subject and only this message.
func (s *SMTPWriter) WriteMsg(when time.Time, msg string, level int) error {
func (s *SMTPWriter) WriteMsg(when time.Time, msg string, level int, lable string, env string) error {
if level > s.Level {
return nil
}


Loading…
Cancel
Save