3 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
認(rèn)為printf
在某些情況下使用s是可以接受的。最好在生產(chǎn)環(huán)境中使用不同的日志記錄策略。
例如,如果您的應(yīng)用程序是在后臺(tái)運(yùn)行的守護(hù)進(jìn)程,fmt.Printf
除非您不將它們通過(guò)管道傳輸?shù)轿募校駝t您將錯(cuò)過(guò)所有的應(yīng)用程序。
進(jìn)行 looging 的一個(gè)好方法是使用日志輪換(因?yàn)槟幌霌碛蟹浅4蟮奈募┒皇侵匦掳l(fā)明自己的 logrotate,您可以根據(jù)需要使用標(biāo)準(zhǔn)包或外部包。
Golang 提供了一個(gè)日志包syslog子包,是依賴操作系統(tǒng) syslog 做簡(jiǎn)單日志的最佳解決方案。

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
我認(rèn)為最好的方法是準(zhǔn)備您的代碼,以便在啟動(dòng) go 應(yīng)用程序時(shí)使用輸入?yún)?shù)輕松地從開發(fā)環(huán)境切換到生產(chǎn)環(huán)境。
您可以創(chuàng)建不同級(jí)別的日志:
“始終”日志級(jí)別
此日志級(jí)別始終處于啟用狀態(tài),提供有關(guān)應(yīng)用程序狀態(tài)的重要信息(如果需要)。還報(bào)告崩潰消息。
“測(cè)試”日志級(jí)別
當(dāng)您的代碼完成時(shí),此日志級(jí)別包含有用的信息,但您必須檢查一些在代碼投入生產(chǎn)時(shí)不再有用的信息
“調(diào)試”日志級(jí)別
當(dāng)您在開發(fā)環(huán)境中開發(fā)新功能或優(yōu)化現(xiàn)有代碼時(shí),此日志級(jí)別包含有用的信息
在我看來(lái),最好的方法是使用chan s,它允許您創(chuàng)建一個(gè)異步守護(hù)程序并在您想要的任何地方記錄任何您想要的內(nèi)容。
你可以在這里閱讀一些關(guān)于陳的信息。
守護(hù)進(jìn)程的一個(gè)例子可能是:
func daemonLogging(importantMessage chan error, testingMessage chan error,debugMessage chan error){
for{
if globalDebugFlag == true{
// Log debug message
}
if globalTestingMessage == true{
// Log Testing message
}
// Log important message
}
}
記得用go關(guān)鍵字調(diào)用這個(gè)函數(shù)
我認(rèn)為你使用什么包并不重要(如果你沒有任何需要)但重要的是你決定如何記錄你的消息
- 3 回答
- 0 關(guān)注
- 186 瀏覽
添加回答
舉報(bào)