diff --git a/function.go b/function.go new file mode 100644 index 0000000..d1658b9 --- /dev/null +++ b/function.go @@ -0,0 +1,61 @@ +package grlogs + +//传入一个字符串,返回一个加密后的md5 +func Md5(str string) string { + data := []byte(str) + has := md5.Sum(data) + md5str := fmt.Sprintf("%x", has) //将[]byte转成16进制 + return md5str +} + +func Md5File(filePath string) string { + hash := md5.New() + data, _ := ioutil.ReadFile(filePath) + hash.Write([]byte(data)) + md5str := hex.EncodeToString(hash.Sum(nil)) + return md5str +} + +func GetPackageName() string { + packpath := reflect.TypeOf(Empty{}).PkgPath() + if idx := strings.Index(packpath, "/"); idx > 0 { + return packpath[:idx] + } else { + return packpath + } +} + +func GetCwd(filepath ...string) string { + _, filename1, _, _ := runtime.Caller(0) + filename2, _ := os.Getwd() + if !strings.HasSuffix(filename2, GetPackageName()) { + paths := append([]string{path.Dir(filename1), "/../../"}, filepath...) + return path.Join(paths...) + } else { + paths := append([]string{filename2, "/"}, filepath...) + return path.Join(paths...) + } +} + +func SetCwd() error { + _, filename1, _, _ := runtime.Caller(0) + filename2, _ := os.Getwd() + if !strings.HasSuffix(filename2, GetPackageName()) { + paths := append([]string{path.Dir(filename1), "/../../"}) + return os.Chdir(path.Join(paths...)) + } else { + paths := append([]string{filename2, "/"}) + return os.Chdir(path.Join(paths...)) + } +} + +func RandString(length int) string { + str := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + bytes := []byte(str) + result := []byte{} + r := rand.New(rand.NewSource(time.Now().UnixNano())) + for i := 0; i < length; i++ { + result = append(result, bytes[r.Intn(len(bytes))]) + } + return string(result) +} diff --git a/log.go b/log.go index 17b4c97..1b6f97e 100644 --- a/log.go +++ b/log.go @@ -6,7 +6,6 @@ import ( "fmt" "github.com/astaxie/beego" "github.com/astaxie/beego/logs" - "lot.gaore.com/library/common" ) const ( @@ -75,7 +74,7 @@ func GetLogger(name string) *Logger { } conf1 := FileLogConfig{ - Filename: common.GetCwd(fmt.Sprintf("runtime/logs/%s.log", name)), + Filename: GetCwd(fmt.Sprintf("runtime/logs/%s.log", name)), Level: LEVEL_ALL, Maxlines: 0, Daily: true,