155 lines
3.6 KiB
Go
155 lines
3.6 KiB
Go
package pkg
|
||
|
||
import (
|
||
"encoding/json"
|
||
"fmt"
|
||
"log"
|
||
"os"
|
||
"time"
|
||
)
|
||
|
||
func ErrLog(errContent string) error {
|
||
// 获取当前程序运行的路径
|
||
log.Printf(errContent)
|
||
logFile, err := errLogFile()
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
// 将错误信息写入日志文件
|
||
file, err := os.OpenFile(logFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
defer file.Close()
|
||
_, err = file.WriteString(fmt.Sprintf("\n【%s】%s\n", time.Now().Format(time.DateTime), errContent))
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
func ProcessLog(processInfo string) error {
|
||
// 获取当前程序运行的路径
|
||
log.Printf(processInfo)
|
||
processPath, err := processLogFile()
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
// 将错误信息写入日志文件
|
||
file, err := os.OpenFile(processPath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
defer file.Close()
|
||
_, err = file.WriteString(fmt.Sprintf("\n【%s】%s\n", time.Now().Format(time.DateTime), processInfo))
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
func MissionLog(adminIdStr string, sysName string, jobName string, taskIdStr string, excelName string, process int, timeStr string) error {
|
||
// 获取当前程序运行的路径
|
||
missionPath, err := MissionLogFile(adminIdStr, sysName, jobName, taskIdStr)
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
// 将错误信息写入日志文件
|
||
file, err := os.OpenFile(missionPath, os.O_RDWR|os.O_TRUNC|os.O_CREATE, 0766)
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
defer file.Close()
|
||
bytes, _ := os.ReadFile(missionPath)
|
||
var info OrderExportData
|
||
_ = json.Unmarshal(bytes, &info)
|
||
status := 0
|
||
if process == 100 {
|
||
status = 1
|
||
}
|
||
nameMap := map[string]interface{}{
|
||
"process": process,
|
||
"file_name": excelName,
|
||
"status": status,
|
||
}
|
||
if timeStr == "" {
|
||
nameMap["time"] = info.Time
|
||
} else {
|
||
nameMap["time"] = timeStr
|
||
}
|
||
processInfo, err := json.Marshal(nameMap)
|
||
jsonInfo := string(processInfo)
|
||
_, err = file.WriteString(jsonInfo)
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
func MissionLogFile(adminIdStr string, sysName string, jobName string, taskIdStr string) (string, error) {
|
||
path, err := MissionLogPath(adminIdStr, sysName, jobName)
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
return fmt.Sprintf("%s/%s", path, taskIdStr), nil
|
||
}
|
||
|
||
func MissionLogPath(adminIdStr string, sysName string, jobName string) (string, error) {
|
||
logPath, err := runtimePath()
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
path := fmt.Sprintf("%s/%s/%s/%s", logPath, sysName, jobName, adminIdStr)
|
||
err = CheckDir(path)
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
return path, nil
|
||
}
|
||
|
||
func errLogFile() (string, error) {
|
||
logPath, err := runtimePath()
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
path := fmt.Sprintf("%s/%s", logPath, "err")
|
||
err = CheckDir(path)
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
return fmt.Sprintf("%s/%s", path, time.Now().Format(time.DateOnly)), nil
|
||
}
|
||
|
||
func processLogFile() (string, error) {
|
||
logPath, err := runtimePath()
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
path := fmt.Sprintf("%s/%s", logPath, "process")
|
||
err = CheckDir(path)
|
||
if err != nil {
|
||
return "", err
|
||
}
|
||
return fmt.Sprintf("%s/%s", path, time.Now().Format(time.DateOnly)), nil
|
||
}
|
||
|
||
func runtimePath() (string, error) {
|
||
path, err := os.Getwd()
|
||
return fmt.Sprintf("%s/%s", path, "runtime"), err
|
||
}
|
||
|
||
func CheckDir(path string) error {
|
||
// 判断目录是否存在
|
||
if _, err := os.Stat(path); os.IsNotExist(err) {
|
||
// 如果目录不存在,则创建它
|
||
err = os.MkdirAll(path, os.ModePerm)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
} else if err != nil {
|
||
// 如果Stat返回了其他错误(比如权限问题)
|
||
return err
|
||
}
|
||
return nil
|
||
}
|