You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

70 lines
1.3 KiB

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
}