文中通重載入配置檔案使用log4go。
二、配置檔案log4go.xml
stdout
console
info
file
file
debug
test_client.log
[%d %t] [%l] (%s) %m
true
10m0k
false
xmllog
xmltrace
trace.xml
true
100m
6kfalse
donotopen
socket
finest
192.168.1.255:12124
udp
三、使用
log4go.loadconfiguration("log4go.xml")
這樣將會在go專案的當前資料夾裡生成乙個test_client.log的日誌檔案。專案中通過log4go.info(""),log4go.error("")等寫入日誌
四、拓展
參考第二步配置檔案的紅色部分,若改為
log/test_client.log
再執行就會報錯filelogwriter("log/test_client.log"): open log/test_client.log: the system cannot find the path specified.
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
因為找不到目錄log。為此對log4go的filelog.go的newfilelogwriter(fname string,rotate bool)方法進行了修改。
func newfilelogwriter(fname string, rotate bool) *filelogwriter else
if end != -1
if !res else
} }w := &filelogwriter
// open the file for the first time
if err := w.introtate(); err != nil
go func() ))
w.file.close()
}}()
for
case rec, ok := <-w.rec:
if !ok
now := time.now()
if (w.maxlines > 0 && w.maxlines_curlines >= w.maxlines) ||
(w.maxsize > 0 && w.maxsize_cursize >= w.maxsize) ||
(w.daily && now.day() != w.daily_opendate)
}// perform the write
n, err := fmt.fprint(w.file, formatlogrecord(w.format, rec))
if err != nil
// update the counts
w.maxlines_curlines++
w.maxsize_cursize += n
}} }()
return w
}//determine if a file or folder exists
//if bool is true,the file or folder exists
func pathexists(path string) (bool, error)
if os.isnotexist(err)
return false, err
}
再次執行,就會在
go專案的當前資料夾裡生成log/
test_client.log。
go匯入第三方包
最好的學習方式就是實踐。我們通過匯入gin包來深入學習。首先回想一下,我們安裝goland的時候,設定了幾個比較重要的環境變數,也就是goroot和gopath。goroot比較容易理解。也就是我們go語言的安裝目錄,標準庫什麼的就放在裡面的。在linux中的話,預設安裝到 usr lib go中,...
Go第三方日誌庫logrus
目錄 六 字段 七 預設字段 八 日誌條目 九 hooks 十 格式化 十一 記錄函式名 go 從入門到放棄完整教程目錄 更有python go pytorch tensorflow 爬蟲 人工智慧教學等著你 更新 更全的 go從入門到放棄 的更新 更有python go 人工智慧教學等著你 日誌是...
Go第三方日誌庫logrus
日誌是程式中必不可少的乙個環節,由於go語言內建的日誌庫功能比較簡潔,我們在實際開發中通常會選擇使用第三方的日誌庫來進行開發。本文介紹了logrus這個日誌庫的基本使用。logrus是go golang 的結構化logger,與標準庫logger完全api相容。它有以下特點 使用logrus最簡單的...