| 
					
				 | 
			
			
				@@ -3,6 +3,7 @@ package myth 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"io" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"log" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"os" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // Logger logger 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -10,6 +11,75 @@ type Logger struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	logger *log.Logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog *Logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defFP  *os.File 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// NewDefaultLogger defult logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func NewDefaultLogger(path string) (*Logger, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var err error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	fp := &os.File{} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if fp, err = os.OpenFile(path, os.O_RDWR|os.O_APPEND|os.O_CREATE, 0666); err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog = NewLogger(fp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defFP = fp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return defLog, nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// ReopenDefaultLogger re open default logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func ReopenDefaultLogger(path string) (*Logger, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var err error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	fp := &os.File{} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if fp, err = os.OpenFile(path, os.O_RDWR|os.O_APPEND|os.O_CREATE, 0666); err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if defLog == nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		defLog = NewLogger(fp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return defLog, nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// CloseDefaultLogger close 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func CloseDefaultLogger() error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return defFP.Close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// LogDebug debug 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func LogDebug(v ...interface{}) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog.logger.SetPrefix("[DEBUG]") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog.logger.Println(v...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// LogInfo info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func LogInfo(v ...interface{}) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog.logger.SetPrefix("[INFO]") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog.logger.Println(v...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// LogWarn warn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func LogWarn(v ...interface{}) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog.logger.SetPrefix("[Warn]") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog.logger.Println(v...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// LogErr err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func LogErr(v ...interface{}) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog.logger.SetPrefix("[Err]") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog.logger.Println(v...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// LogAlert alert 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func LogAlert(v ...interface{}) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog.logger.SetPrefix("[Alert]") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defLog.logger.Println(v...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // NewLogger new logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func NewLogger(out io.Writer) *Logger { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	logger := log.New(out, "[INFO]", log.Ldate|log.Ltime) 
			 |