refactor:log包增加处理机制

This commit is contained in:
Mmx
2021-05-05 10:46:04 +08:00
parent 9c274d4364
commit 4e4cdd35c2
6 changed files with 66 additions and 25 deletions

View File

@@ -1,15 +1,9 @@
package Util package Util
import (
"log"
"os"
)
func getbyte(a byte) int { func getbyte(a byte) int {
x := int(a) x := int(a)
if x > 255 { if x > 255 {
log.Println("INVALID_CHARACTER_ERR: DOM Exception 5") Log.Fatalln("INVALID_CHARACTER_ERR: DOM Exception 5")
os.Exit(1)
} }
return x return x
} }

View File

@@ -1,6 +1,7 @@
package Util package Util
import ( import (
"bufio"
"encoding/json" "encoding/json"
"io/ioutil" "io/ioutil"
"os" "os"
@@ -24,7 +25,7 @@ func (*file) Exists(path string) bool {
} }
func (a *file) Read(path string) ([]byte, error) { func (a *file) Read(path string) ([]byte, error) {
return ioutil.ReadFile(a.GetRootPath() + "/" + path) return ioutil.ReadFile(a.GetRootPath() + path)
} }
func (*file) ReadJson(path string, receiver interface{}) error { func (*file) ReadJson(path string, receiver interface{}) error {
@@ -36,7 +37,7 @@ func (*file) ReadJson(path string, receiver interface{}) error {
} }
func (a *file) Write(path string, data []byte) error { func (a *file) Write(path string, data []byte) error {
return ioutil.WriteFile(a.GetRootPath()+"/"+path, data, 700) return ioutil.WriteFile(a.GetRootPath()+path, data, 700)
} }
func (a *file) WriteJson(path string, receiver interface{}) error { func (a *file) WriteJson(path string, receiver interface{}) error {
@@ -52,5 +53,15 @@ func (*file) GetRootPath() string {
if err != nil { if err != nil {
ErrHandler(err) ErrHandler(err)
} }
return filepath.Dir(t) return filepath.Dir(t) + "/"
}
func (a *file) Add(path string, c string) error {
file, err := os.OpenFile(a.GetRootPath()+path, os.O_WRONLY|os.O_CREATE, 700)
defer file.Close()
if err != nil {
return err
}
_, err = bufio.NewWriter(file).WriteString(c + "\n")
return err
} }

View File

@@ -3,7 +3,6 @@ package Util
import ( import (
"Mmx/Global" "Mmx/Global"
"Mmx/Modles" "Mmx/Modles"
"log"
"os" "os"
) )
@@ -24,16 +23,16 @@ func init() {
Enc: "srun_bx1", Enc: "srun_bx1",
}, },
}); err != nil { }); err != nil {
log.Println("创建配置文件失败:\n", err.Error()) Log.Println("创建配置文件失败:\n", err.Error())
os.Exit(1) os.Exit(1)
} }
log.Println("已生成配置文件,请编辑 'Config.json' 然后重试") Log.Println("已生成配置文件,请编辑 'Config.json' 然后重试")
os.Exit(0) os.Exit(0)
} }
var c Modles.Config var c Modles.Config
if err := File.ReadJson(Path, &c); err != nil { if err := File.ReadJson(Path, &c); err != nil {
log.Println("读取配置文件失败:\n", err.Error()) Log.Println("读取配置文件失败:\n", err.Error())
os.Exit(1) os.Exit(1)
} }

39
Util/log.go Normal file
View File

@@ -0,0 +1,39 @@
package Util
import (
"Mmx/Global"
"fmt"
"log"
"reflect"
)
type loG struct{}
var Log loG
func (loG) WriteLog(name string, a ...interface{}) {
for _, v := range a {
var t string
switch reflect.TypeOf(v).Kind() {
case reflect.String:
t = v.(string)
case reflect.Interface:
t = v.(error).Error()
default:
t = fmt.Sprint(v)
}
_ = File.Add(name, t)
}
}
func (c loG) Println(a ...interface{}) {
if Global.Config.Settings.DemoMode {
c.WriteLog("Login.loG", a...)
}
log.Println(a...)
}
func (c loG) Fatalln(a ...interface{}) {
c.WriteLog("LoginError.loG", a...)
log.Fatalln(a...)
}

View File

@@ -7,7 +7,6 @@ import (
"errors" "errors"
"fmt" "fmt"
"io" "io"
"log"
"os" "os"
"regexp" "regexp"
) )
@@ -51,9 +50,9 @@ func Sha1(content string) string {
func ErrHandler(err error) { func ErrHandler(err error) {
if err != nil { if err != nil {
log.Println("运行出错,状态异常") Log.Println("运行出错,状态异常")
if Global.Config.Settings.DemoMode { if Global.Config.Settings.DemoMode {
log.Fatalln(err) Log.Fatalln(err)
} }
os.Exit(1) os.Exit(1)
} }

15
main.go
View File

@@ -6,27 +6,26 @@ import (
"Mmx/Util" "Mmx/Util"
"encoding/json" "encoding/json"
"fmt" "fmt"
"log"
"time" "time"
) )
func main() { func main() {
log.Println("Step0: 检查状态…") Util.Log.Println("Step0: 检查状态…")
G := Global.Config.Generate() G := Global.Config.Generate()
if Global.Config.Settings.QuitIfNetOk && Util.Checker.NetOk(G.UrlCheckApi) { if Global.Config.Settings.QuitIfNetOk && Util.Checker.NetOk(G.UrlCheckApi) {
log.Println("网络正常,程序退出") Util.Log.Println("网络正常,程序退出")
return return
} }
log.Println("Step1: 正在获取客户端ip") Util.Log.Println("Step1: 正在获取客户端ip")
{ {
body, err := Request.Get(G.UrlLoginPage, nil) body, err := Request.Get(G.UrlLoginPage, nil)
Util.ErrHandler(err) Util.ErrHandler(err)
G.Ip, err = Util.GetIp(body) G.Ip, err = Util.GetIp(body)
Util.ErrHandler(err) Util.ErrHandler(err)
} }
log.Println("Step2: 正在获取Token") Util.Log.Println("Step2: 正在获取Token")
{ {
data, err := Request.Get(G.UrlGetChallengeApi, map[string]string{ data, err := Request.Get(G.UrlGetChallengeApi, map[string]string{
"callback": "jsonp1583251661367", "callback": "jsonp1583251661367",
@@ -37,7 +36,7 @@ func main() {
G.Token, err = Util.GetToken(data) G.Token, err = Util.GetToken(data)
Util.ErrHandler(err) Util.ErrHandler(err)
} }
log.Println("Step3: 执行登录…") Util.Log.Println("Step3: 执行登录…")
{ {
info, err := json.Marshal(map[string]string{ info, err := json.Marshal(map[string]string{
"username": G.Form.UserName, "username": G.Form.UserName,
@@ -76,9 +75,9 @@ func main() {
Util.ErrHandler(err) Util.ErrHandler(err)
G.LoginResult, err = Util.GetResult(res) G.LoginResult, err = Util.GetResult(res)
Util.ErrHandler(err) Util.ErrHandler(err)
log.Println("登录结果: " + G.LoginResult) Util.Log.Println("登录结果: " + G.LoginResult)
if Global.Config.Settings.DemoMode { if Global.Config.Settings.DemoMode {
log.Println(res) Util.Log.Println(res)
} }
} }
} }