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
|
|
}
|