這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
golang程式日誌記錄
package mainimport ("flag""fmt""log""os""runtime")var (logFileName = flag.String("log", "cServer.log", "Log file name"))func main() {runtime.GOMAXPROCS(runtime.NumCPU())flag.Parse()//set logfile StdoutlogFile, logErr := os.OpenFile(*logFileName, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666)if logErr != nil {fmt.Println("Fail to find", *logFile, "cServer start Failed")os.Exit(1)}log.SetOutput(logFile)log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)//write loglog.Printf("Server abort! Cause:%v \n", "test log file")}
說明:
一、在主程式啟動之前初始化log的格式後,以後用log.xxx 都將記錄在初始的cServer.log檔案中
二、上面的初始化的格式在log檔案顯示為:
2013/03/19 10:44:26 main.go:29: Server abort! Cause:test log file 2013/03/19 10:44:27 main.go:29: Server abort! Cause:test log file
三、可以通過log.SetFlags()自定議你想要表達的格式
四、設定輸出目的地log.SetOutput()
五、os.OpenFile(*logFileName, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666)這是建立log檔案.
5.1如果log檔案不存在,建立一個新的檔案os.O_CREATE
5.2開啟檔案的讀寫os.O_RDWR
5.3將log資訊寫入到log檔案,是繼承到當前log檔案,不是覆蓋os.O_APPEND
5.3log檔案的許可權位0666(即所有使用者可讀寫)