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)//保證文件必須存在的。