Эх сурвалжийг харах

完善日志文件名定义

Tao Zhang 6 жил өмнө
parent
commit
ee3a3ab930

BIN
bin/calldemo


BIN
bin/msgserver


BIN
bin/service


+ 24 - 20
src/mfw/util/log.go

@@ -36,21 +36,22 @@ type Logger struct {
 
 //实现io.writer接口
 type logwriter struct {
-	logpath     string
-	sizelimt    int64
-	currentsize int64
-	mux         sync.RWMutex
-	filewriter  *os.File
+	logpath        string
+	sizelimt       int64
+	currentsize    int64
+	filenameprifex string
+	mux            sync.RWMutex
+	filewriter     *os.File
 }
 
 //
 func (lw *logwriter) Write(p []byte) (int, error) {
 	lw.mux.Lock()
 	if lw.filewriter == nil {
-		lw.filewriter, _ = os.OpenFile(lw.makeLogFile(lw.logpath), os.O_CREATE|os.O_TRUNC|os.O_SYNC|os.O_RDWR, 0777)
+		lw.filewriter, _ = os.OpenFile(lw.makeLogFile(), os.O_CREATE|os.O_TRUNC|os.O_SYNC|os.O_RDWR, 0777)
 	} else if lw.currentsize > lw.sizelimt {
 		lw.filewriter.Close()
-		lw.filewriter, _ = os.OpenFile(lw.makeLogFile(lw.logpath), os.O_CREATE|os.O_TRUNC|os.O_SYNC|os.O_RDWR, 0777)
+		lw.filewriter, _ = os.OpenFile(lw.makeLogFile(), os.O_CREATE|os.O_TRUNC|os.O_SYNC|os.O_RDWR, 0777)
 		lw.currentsize = 0
 	}
 	lw.mux.Unlock()
@@ -59,13 +60,13 @@ func (lw *logwriter) Write(p []byte) (int, error) {
 }
 
 //生成不重复的文件名
-func (lw *logwriter) makeLogFile(logpath string) string {
-	if _, err := os.Stat(logpath); err != nil {
-		os.MkdirAll(logpath, 0777)
+func (lw *logwriter) makeLogFile() string {
+	if _, err := os.Stat(lw.logpath); err != nil {
+		os.MkdirAll(lw.logpath, 0777)
 	}
 	var log_file_path string
 	for i := 0; i < 1000; i++ {
-		file_name := fmt.Sprintf("%s%clog_%s_%03d.log", logpath, filepath.Separator, time.Now().Format("2006_01_02"), i)
+		file_name := fmt.Sprintf("%s%c%s_%s_%03d.log", lw.logpath, filepath.Separator, lw.filenameprifex, time.Now().Format("2006_01_02"), i)
 		if _, err := os.Stat(file_name); err != nil {
 			log_file_path = file_name
 			break
@@ -75,7 +76,7 @@ func (lw *logwriter) makeLogFile(logpath string) string {
 }
 
 //
-func NewLogger(logpath string, level int, out2stdout bool, filesizelimit int64) *Logger {
+func NewLogger(logpath string, level int, out2stdout bool, filenameprifex string, filesizelimit int64) *Logger {
 	log_flag := log.Ldate | log.Ltime | log.Lshortfile
 	logger := &Logger{
 		logpath:   logpath,
@@ -86,22 +87,25 @@ func NewLogger(logpath string, level int, out2stdout bool, filesizelimit int64)
 		Waring:    log.New(ioutil.Discard, "[waring]", log_flag),
 		Fail:      log.New(ioutil.Discard, "[fail]", log_flag),
 	}
-	logger.SetLevel(level, out2stdout)
+	logger.SetParam(level, out2stdout, logpath, filenameprifex)
 	return logger
 }
 
-//
-func (l *Logger) SetLevel(level int, out2stdout bool) {
+//设置参数
+func (l *Logger) SetParam(level int, out2stdout bool, logfilepath, filenameprifex string) {
+	l.logpath = logfilepath
 	var lw io.Writer
 	if out2stdout {
 		lw = io.MultiWriter(&logwriter{logpath: l.logpath,
-			sizelimt:    l.sizelimit,
-			currentsize: 0,
+			filenameprifex: filenameprifex,
+			sizelimt:       l.sizelimit,
+			currentsize:    0,
 		}, os.Stdout)
 	} else {
 		lw = &logwriter{logpath: l.logpath,
-			sizelimt:    l.sizelimit,
-			currentsize: 0,
+			filenameprifex: filenameprifex,
+			sizelimt:       l.sizelimit,
+			currentsize:    0,
 		}
 	}
 
@@ -140,4 +144,4 @@ func (l *Logger) SetLevel(level int, out2stdout bool) {
 }
 
 //默认日志
-var Log = NewLogger("./logs", LOG_LEVEL_INFO, true, 1024*1024*50)
+var Log = NewLogger("./logs", LOG_LEVEL_INFO, true, "log", 1024*1024*50)

+ 1 - 1
src/mfw/util/log_test.go

@@ -7,7 +7,7 @@ import (
 //
 func BenchmarkLog(b *testing.B) {
 	//mylog := NewLogger("../../../logs", LOG_LEVEL_DEBUG, 1024*1024*5)
-	Log.SetLevel(LOG_LEVEL_ERROR)
+	Log.SetParam(LOG_LEVEL_ERROR)
 	for i := 0; i < b.N; i++ {
 		Log.Debug.Println("hello world")
 	}

+ 1 - 1
src/发布服务样例/main.go

@@ -32,7 +32,7 @@ func main() {
 	tlscert := flag.String("cert", "", "cert文件")
 	tlskey := flag.String("key", "", "key文件")
 	flag.Parse()
-	util.Log.SetLevel(util.LOG_LEVEL_INFO, true)
+	util.Log.SetParam(util.LOG_LEVEL_INFO, true, "./logs", "pushservice")
 	var err error
 	client, err = util.NewClient(&util.ClientConfig{
 		MsgServerAddr:   *addr,

+ 1 - 1
src/服务端/main.go

@@ -260,7 +260,7 @@ func main() {
 	flag.Parse()
 	gcinterval = *interval
 	//初始化日志
-	util.Log = util.NewLogger("./logs", util.LOG_LEVEL_INFO, true, 1024*1024*50)
+	util.Log = util.NewLogger("./logs", util.LOG_LEVEL_INFO, true, "msgserver", 1024*1024*50)
 	//心跳检测
 	go gc()
 	//启动服务