打印log到指定文檔

package main

import (
	"fmt"
	"log"
	"net"
	"os"
	"strings"
	"sync"
	"time"
)

type TcpTransporter struct {
	Address     string
	Timeout     time.Duration
	IdleTimeout time.Duration
	Logger      *log.Logger
	mu          sync.Mutex
	conn        net.Conn
	/*Timer類型代表單次時間事件*/
	closeTimer *time.Timer
	lastActive time.Time
}

func (mb *TcpTransporter) logf(format string, v ...interface{}) {
	if mb.Logger != nil {
		mb.Logger.Printf(format, v...)
	} else {
		goPath := os.Getenv("GOPATH")
		fmt.Println(goPath)
		goPath = strings.Replace(goPath, "\\", "/", -1)
		goPath = strings.TrimSuffix(goPath, ";")
		file := goPath + "/log.txt"
		fmt.Println(file)
		logFile, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND|os.O_TRUNC, 0766)
		if nil != err {
			panic(err)
		}
		//創建一個Logger
		//參數1:日誌寫入目的地
		//參數2:每條日誌的前綴
		//參數3:日誌屬性
		mb.Logger = log.New(logFile, "前綴", log.Ldate|log.Ltime|log.Llongfile)
		mb.Logger.Printf(format, v...)//將行號打印出來了
	}
}

func main() {
	a := new(TcpTransporter)
	a.logf("modbus: received % s\n", "123")
}

os.OpenFile(file, os.O_APPEND, 0766)//保證文件必須存在的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章