package logger import ( "errors" "fmt" "os" "os/exec" "path" "path/filepath" "runtime" "strings" "time" ) // 获取今天的日期 func getToday() string { now := time.Now() return now.Format("2006-01-02") } // 获取当前时间 func getCurrentTime() string { now := time.Now() hour := now.Hour() minute := now.Minute() second := now.Second() return fmt.Sprintf("%02d:%02d:%02d", hour, minute, second) } // 获取调用代码的位置信息 func getCaller(skip int) string { pc, file, line, ok := runtime.Caller(skip) if !ok { return "" } fileName := path.Base(file) funcName := runtime.FuncForPC(pc).Name() return fmt.Sprintf("file:%v;function:%v;line:%d", fileName, funcName, line) } // 获取程序进程id func getPid() int { return os.Getpid() } //windows环境下获取绝对路径 func GetCurrentPath(dir string) (string, error) { file, err := exec.LookPath(os.Args[0]) if err != nil { return "", err } path, err := filepath.Abs(file) if err != nil { return "", err } i := strings.LastIndex(path, "/") if i < 0 { i = strings.LastIndex(path, "\\") } if i < 0 { return "", errors.New(`error: Can't find "/" or "\".`) } pathdir := string(path[0 : i+1]) if len(dir) > 0 { dir = strings.Replace(dir, "/", "\\", -1) return filepath.Join(pathdir, dir), nil } return string(path[0 : i+1]), nil }