/
logger.go
89 lines (80 loc) · 2.15 KB
/
logger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
_____ __ __ _ __
╱ ____| | ╲/ | | |/ /
| | __ ___ | ╲ / | __ _ _ __| ' /
| | |_ |/ _ ╲| |╲ /| |/ _` | '__| <
| |__| | __/| | | ( _| | | | . ╲
╲_____|╲___ |_| |_|╲__,_ |_| |_|╲_╲
可爱飞行猪❤: golang83@outlook.com 💯💯💯
Author Name: GeMarK.VK.Chow奥迪哥 🚗🔞🈲
Creaet Time: 2019/05/09 - 14:27:15
ProgramFile: logger.go
Description:
用于必应壁纸程序的日志输出
*/
package tools
import (
"fmt"
"log"
"os"
)
// Logger 对象
type Logger struct {
Format string
LogPath string
Filename string
logobj *log.Logger
logFS *os.File
}
// CreateLogger 创建日志对象
func (logger *Logger) CreateLogger(logpath string, filename string) *Logger {
logger = new(Logger)
logger.Format = ""
logger.LogPath = logpath
logger.Filename = filename
logger.logobj = new(log.Logger)
logger.openLogFile(logpath, filename)
logger.logobj.SetOutput(logger.logFS)
logger.logobj.SetFlags(log.LstdFlags)
return logger
}
// ErrorOutput 错误输出到文件
// msg 为字符串类型的错误信息
func (logger *Logger) ErrorOutput(msg interface{}) {
logger.logobj.SetPrefix("[ErrorMSG]")
switch msg.(type) {
case string:
logger.logobj.Printf("%s\r\n", msg)
case error:
var err = msg.(error)
logger.logobj.Printf("%s\r\n", err.Error())
}
}
// StdOut 使用fmt.Println输入字符串
func (logger *Logger) StdOut(msg string) {
fmt.Printf("%s\r\n", msg)
}
// InfoOutput 输出普通信息到文件
// msg 为字符串类型的文本信息
func (logger *Logger) InfoOutput(msg interface{}) {
logger.logobj.SetPrefix("[InfoMSG]")
switch msg.(type) {
case string:
logger.logobj.Printf("%s\r\n", msg)
case error:
var err = msg.(error)
logger.logobj.Printf("%s\r\n", err.Error())
}
}
func (logger *Logger) openLogFile(logpath string, filename string) {
var err error
path := logpath + "/" + filename
if logger.logFS, err = os.OpenFile(path, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0); err != nil {
panic(err.Error())
}
}
// CloseLogger 关闭日志对象
func (logger *Logger) CloseLogger() {
// 关闭文件对象
logger.logFS.Close()
}