19 changed files with 162 additions and 146 deletions
@ -0,0 +1,73 @@ |
|||
package rest |
|||
|
|||
import ( |
|||
"fmt" |
|||
"log" |
|||
"os" |
|||
) |
|||
|
|||
//日志系统必须高保
|
|||
//全局唯一的日志对象(在main函数中初始化)
|
|||
var LOGGER *Logger = &Logger{} |
|||
|
|||
//在Logger的基础上包装一个全新的Logger.
|
|||
type Logger struct { |
|||
//继承logger
|
|||
goLogger *log.Logger |
|||
//日志记录所在的文件
|
|||
file *os.File |
|||
} |
|||
|
|||
//处理日志的统一方法。
|
|||
func (this *Logger) log(prefix string, format string, v ...interface{}) { |
|||
fmt.Printf(format+"\r\n", v...) |
|||
|
|||
this.goLogger.SetPrefix(prefix) |
|||
this.goLogger.Printf(format, v...) |
|||
} |
|||
|
|||
//处理日志的统一方法。
|
|||
func (this *Logger) Debug(format string, v ...interface{}) { |
|||
this.log("[debug]", format, v...) |
|||
} |
|||
|
|||
func (this *Logger) Info(format string, v ...interface{}) { |
|||
this.log("[info]", format, v...) |
|||
} |
|||
|
|||
func (this *Logger) Warn(format string, v ...interface{}) { |
|||
this.log("[warn]", format, v...) |
|||
} |
|||
|
|||
func (this *Logger) Error(format string, v ...interface{}) { |
|||
this.log("[error]", format, v...) |
|||
} |
|||
|
|||
func (this *Logger) Panic(format string, v ...interface{}) { |
|||
this.log("[panic]", format, v...) |
|||
panic(fmt.Sprintf(format, v...)) |
|||
} |
|||
|
|||
func (this *Logger) Init() { |
|||
|
|||
//日志输出到文件中 文件打开后暂时不关闭
|
|||
filePath := GetLogPath() + "/tank.log" |
|||
fmt.Printf("使用日志文件 %s\r\n", filePath) |
|||
f, err := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) |
|||
if err != nil { |
|||
panic("日志文件无法正常打开: " + err.Error()) |
|||
} |
|||
|
|||
this.goLogger = log.New(f, "", log.Ltime) |
|||
this.file = f |
|||
} |
|||
|
|||
func (this *Logger) Destroy() { |
|||
if this.file != nil { |
|||
err := this.file.Close() |
|||
if err != nil { |
|||
panic("尝试关闭日志时出错: " + err.Error()) |
|||
} |
|||
} |
|||
|
|||
} |
|||
@ -1,50 +0,0 @@ |
|||
package rest |
|||
|
|||
import ( |
|||
"fmt" |
|||
"log" |
|||
"os" |
|||
"time" |
|||
) |
|||
|
|||
func Log(prefix string, content string) { |
|||
|
|||
//日志输出到文件中
|
|||
filePath := CONFIG.LogPath + "/tank-" + time.Now().Local().Format("2006-01-02") + ".log" |
|||
f, err := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) |
|||
if err != nil { |
|||
fmt.Errorf("error opening file: %v", err) |
|||
} |
|||
defer f.Close() |
|||
|
|||
log.SetOutput(f) |
|||
log.SetPrefix(prefix) |
|||
log.Println(content) |
|||
|
|||
//如果需要输出到控制台。
|
|||
if CONFIG.LogToConsole { |
|||
fmt.Println(content) |
|||
} |
|||
|
|||
} |
|||
|
|||
func LogDebug(content string) { |
|||
go Log("[Debug]", content) |
|||
} |
|||
|
|||
func LogInfo(content string) { |
|||
go Log("[Info]", content) |
|||
} |
|||
|
|||
func LogWarning(content string) { |
|||
go Log("[Warning]", content) |
|||
} |
|||
|
|||
func LogError(content string) { |
|||
go Log("[Error]", content) |
|||
} |
|||
|
|||
func LogPanic(content interface{}) { |
|||
Log("[Panic]", fmt.Sprintf("%v", content)) |
|||
panic(content) |
|||
} |
|||
Loading…
Reference in new issue