Ai
1 Star 0 Fork 0

pheker/learn-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
util.go 1.84 KB
一键复制 编辑 原始数据 按行查看 历史
pheker 提交于 2022-01-01 23:46 +08:00 . InitLog
package utils
import (
"gitee.com/pheker/learn-go/tool/log"
"gopkg.in/yaml.v2"
"io/ioutil"
"math/rand"
"os"
"os/exec"
"path/filepath"
"strings"
"time"
)
// GetExeDir
// 获取当前exe所在文件夹
func GetExeDir() string {
dir := filepath.Dir(os.Args[0])
abs, _ := filepath.Abs(dir)
return ResolvePath(abs)
}
// GetExeName
// 获取当前exe文件名(包含后缀名)
func GetExeName() string {
dir, _ := exec.LookPath(os.Args[0])
dir = ResolvePath(dir)
index := strings.LastIndex(dir, "/")
if index != -1 {
return dir[index+1:]
}
return dir
}
// GetExeFullPath
// 获取当前exe文件路径
func GetExeFullPath() string {
dir := GetExeDir()
name := GetExeName()
return strings.Join([]string{dir, "/", name}, "")
}
// ResolvePath
// 转换window路径分隔符为Unix路径分隔符
func ResolvePath(path string) string {
return strings.Replace(path, "\\", "/", -1)
}
type Pair struct {
K interface{} `yaml:"k" json:"k"`
V interface{} `yaml:"v" json:"v"`
}
func LoadYaml(yamlPath string, config interface{}) error {
byteConf, err := ioutil.ReadFile(yamlPath)
if err != nil {
return err
}
err = yaml.Unmarshal(byteConf, config)
return err
}
func Shuffle(ss []string) {
rand.Seed(time.Now().UnixNano())
rand.Shuffle(len(ss), func(i, j int) { ss[i], ss[j] = ss[j], ss[i] })
}
func CurrentPath() (string, error) {
return os.Getwd()
}
func InitLog() (string, error) {
dir, err := CurrentPath()
if err != nil {
return dir, err
}
var name = filepath.Base(dir)
// print log in std and log file
logPath := filepath.Join(dir, name+".log")
logFile, err := os.OpenFile(logPath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 666)
if err != nil {
log.Error(err.Error())
return dir, err
}
log.AddOutput(logFile)
log.EnableAnsiColor(false)
log.Infof("dir: %s, name: %s\n", dir, name)
log.Infof("logpath: %s", logPath)
return dir, nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/pheker/learn-go.git
git@gitee.com:pheker/learn-go.git
pheker
learn-go
learn-go
v1.0.4

搜索帮助