log.go 2.0 KB
Newer Older
Y
Your Name 已提交
1
package server
E
eoLinker API Management 已提交
2 3

import (
Y
Your Name 已提交
4
	"github.com/eolinker/goku-api-gateway/config"
黄孟柱 已提交
5 6 7
	log "github.com/eolinker/goku-api-gateway/goku-log"
	access_log "github.com/eolinker/goku-api-gateway/goku-node/access-log"
	access_field "github.com/eolinker/goku-api-gateway/server/access-field"
E
eoLinker API Management 已提交
8 9
)

Y
Your Name 已提交
10 11
//SetLog setLog
func SetLog(c *config.LogConfig) {
E
eoLinker API Management 已提交
12

Y
Your Name 已提交
13
	if c == nil {
E
eoLinker API Management 已提交
14 15 16

		c = defaultNodeAppLogConfig()
	}
Y
Your Name 已提交
17

Y
Your Name 已提交
18 19
	period, err := log.ParsePeriod(c.Period)
	if err != nil {
E
eoLinker API Management 已提交
20
		period = log.PeriodDay
Y
Your Name 已提交
21
		log.Warn("manager/config unmarshal access log period failed for nod , use the default config:%s", err)
E
eoLinker API Management 已提交
22 23
	}

Y
Your Name 已提交
24 25
	level, err := log.ParseLevel(c.Level)
	if err != nil {
E
eoLinker API Management 已提交
26
		level = log.WarnLevel
Y
Your Name 已提交
27
		log.Warn("manager/config unmarshal access log level failed for nod , use the default config:%s", err)
E
eoLinker API Management 已提交
28 29
	}

Y
Your Name 已提交
30 31
	enable := c.Enable == 1
	log.SetOutPut(enable, c.Dir, c.File, period, c.Expire)
E
eoLinker API Management 已提交
32 33
	log.SetLevel(level)
}
Y
Your Name 已提交
34 35 36 37

//SetAccessLog setAccessLog
func SetAccessLog(c *config.AccessLogConfig) {
	if c == nil {
Y
Your Name 已提交
38
		c = defaultAccessLogConfig()
E
eoLinker API Management 已提交
39
	}
Y
Your Name 已提交
40 41
	period, err := log.ParsePeriod(c.Period)
	if err != nil {
E
eoLinker API Management 已提交
42
		period = log.PeriodDay
Y
Your Name 已提交
43
		log.Warn("manager/config unmarshal period failed for , use the default config:%s", err)
E
eoLinker API Management 已提交
44
	}
Y
Your Name 已提交
45
	enable := c.Enable == 1
E
eoLinker API Management 已提交
46

Y
Your Name 已提交
47
	fieldsConfig := c.Fields
Y
Your Name 已提交
48 49
	if err != nil || len(fieldsConfig) == 0 {
		log.Warn("manager/config unmarshal access log fields error:", err)
E
eoLinker API Management 已提交
50 51

		access_log.SetFields(access_field.Default())
Y
Your Name 已提交
52 53 54
	} else {
		fields := make([]access_field.AccessFieldKey, 0, access_field.Size())
		for _, f := range fieldsConfig {
Y
Your Name 已提交
55
			fields = append(fields, access_field.Parse(f))
E
eoLinker API Management 已提交
56 57 58 59
		}
		access_log.SetFields(fields)
	}

Y
Your Name 已提交
60
	access_log.SetOutput(enable, c.Dir, c.File, period, c.Expire)
Y
Your Name 已提交
61
}
E
eoLinker API Management 已提交
62

Y
Your Name 已提交
63 64 65 66 67 68 69
func defaultAccessLogConfig() *config.AccessLogConfig {
	return &config.AccessLogConfig{
		Name:   "access",
		Enable: 1,
		Dir:    "work/logs/",
		File:   "access.log",
		Period: "hour",
Y
Your Name 已提交
70
		Expire: 3,
Y
Your Name 已提交
71 72 73 74 75 76 77 78 79 80 81 82 83
		Fields: nil,
	}
}

func defaultNodeAppLogConfig() *config.LogConfig {
	return &config.LogConfig{
		Name:   "node",
		Enable: 1,
		Dir:    "work/logs/",
		File:   "node.log",
		Level:  "error",
		Period: "hour",
	}
Y
Your Name 已提交
84
}