61 lines
1.1 KiB
Go
61 lines
1.1 KiB
Go
package services
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
"time"
|
|
)
|
|
|
|
var logDir string
|
|
|
|
func init() {
|
|
// 设置日志目录
|
|
exePath, err := os.Executable()
|
|
if err != nil {
|
|
logDir = "./Log"
|
|
} else {
|
|
logDir = filepath.Join(filepath.Dir(exePath), "Log")
|
|
}
|
|
os.MkdirAll(logDir, 0755)
|
|
}
|
|
|
|
// LogInfo 记录信息日志
|
|
func LogInfo(message string) {
|
|
logMessage("INFO", message)
|
|
}
|
|
|
|
// LogError 记录错误日志
|
|
func LogError(message string) {
|
|
logMessage("ERROR", message)
|
|
}
|
|
|
|
// LogWarn 记录警告日志
|
|
func LogWarn(message string) {
|
|
logMessage("WARN", message)
|
|
}
|
|
|
|
// LogDebug 记录调试日志
|
|
func LogDebug(message string) {
|
|
logMessage("DEBUG", message)
|
|
}
|
|
|
|
// logMessage 写入日志消息
|
|
func logMessage(level, message string) {
|
|
// 控制台输出
|
|
log.Printf("[%s] %s", level, message)
|
|
|
|
// 文件输出
|
|
logFile := filepath.Join(logDir, fmt.Sprintf("log%s.log", time.Now().Format("20060102")))
|
|
file, err := os.OpenFile(logFile, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
|
|
if err != nil {
|
|
return
|
|
}
|
|
defer file.Close()
|
|
|
|
timestamp := time.Now().Format("15:04:05")
|
|
file.WriteString(fmt.Sprintf("%s [%s] %s\n", timestamp, level, message))
|
|
}
|
|
|