1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package common
- import (
- "bytes"
- "fmt"
- "crypto/md5"
- "io/ioutil"
- )
- // importantLog check if log level is above ERROR
- func CriticalLog(level []byte) bool {
- if bytes.Equal(level, []byte("WARN")) || bytes.Equal(level, []byte("ERROR")) || bytes.Equal(level, []byte("FATAL")) {
- return true
- }
- return false
- }
- // GetPriority get priority value from json body
- func GetPriority(logBody []byte) (value []byte, err error) {
- return SeekValue([]byte(`"priority":`), logBody)
- }
- // seekValue seek value by key from json
- func SeekValue(key []byte, logBody []byte) (value []byte, err error) {
- var (
- b, logLen, begin, end int
- )
- b = bytes.Index(logBody, key)
- if b != -1 {
- logLen = len(logBody)
- for begin = b + len(key); begin < logLen && logBody[begin] != byte('"'); begin++ {
- }
- if begin >= logLen {
- err = fmt.Errorf("beginning of value not found by key: %s", string(key))
- return
- }
- begin++ // begin position of value of appid
- for end = begin; end < logLen && logBody[end] != byte('"'); end++ {
- }
- if end >= logLen {
- err = fmt.Errorf("end of value not found by key: %s", string(key))
- return
- }
- value = logBody[begin:end]
- return
- } else {
- err = fmt.Errorf("key %s not found", string(key))
- return
- }
- }
- func FileMd5(filePath string) string {
- data, _ := ioutil.ReadFile(filePath)
- value := md5.Sum(data)
- return fmt.Sprintf("%x", value)
- }
|