在Go中執行日誌記錄的慣用方法是什麼?如何在Go庫中實現慣用日誌記錄?
9
A
回答
11
創建一個聲明全局變量的文件logger。然後,使用Go的慣用功能init()在啓動時初始化變量。
logger.go:
package xxx
import (
"log"
"os"
)
var logger *log.Logger
func init() {
logger = log.New(os.Stderr, "xxx: ", log.Ldate | log.Ltime | log.Lshortfile)
}
example.go:
func test() {
logger.Println("Logged")
}
這種方法提供了可使用能夠從一個單一的配置單記錄器實現利益文件。
編輯: ThomasKappler指出,如果您只使用單個全局記錄器,則可以使用日誌包的內置記錄器並使用SetFlags進行配置。唯一的區別是你必須更加明確並導入日誌包。
+11
如果只使用一個全局記錄器,則可以跳過創建自己的記錄器並使用log.Println等日誌包的函數。您仍然可以使用log.SetFlags()對其進行配置。 –
+0
@ThomasKappler謝謝,我不知道。我更喜歡使用這種方法,因爲我可以在不破壞現有功能的情況下擴展記錄器(另外,我不必隨處導入日誌包) – liamzebedee
相關問題
- 1. android - 如何實現日誌記錄
- 2. 如何使用rails實現在rails中的日誌記錄?
- 3. 如何在腳本中實現日誌記錄
- 4. 如何在golang中實現基於級別的日誌記錄?
- 5. 如何在log4cplus中實現異步日誌記錄
- 6. 如何在枚舉單例中實現日誌記錄?
- 7. 如何在工作流程中實現日誌記錄
- 8. 如何在Hibernate + Spring中實現數據庫操作日誌記錄
- 9. 實現線程安全日誌記錄
- 10. WCF實現簡單日誌記錄
- 11. 數據庫日誌記錄在日誌記錄過程
- 12. 如何實現Node.js應用程序日誌記錄到CloudWatch
- 13. JavaScript日誌記錄庫(日誌級別)
- 14. 沒有日誌庫的日誌記錄
- 15. 實時日誌記錄
- 16. 如何在Asterisk.NET庫中啓用日誌記錄?
- 17. 數據庫日誌記錄
- 18. 企業庫日誌記錄
- 19. NHibernate如何實現可選的log4net日誌記錄
- 20. 如何實現scala項目的scala日誌記錄?
- 21. 在Corona SDK中實現事件日誌記錄
- 22. 在C++中實現最小化日誌記錄程序
- 23. 如何在Spring XD中實現自定義模塊中的日誌記錄?
- 24. 如何實現log4j日誌記錄到現有的J2EE Struts Web應用程序?
- 25. 如何在SQL存儲過程中實現日誌記錄和錯誤報告?
- 26. 如何在java程序中實現SQLite的預寫式日誌記錄
- 27. 如何實現日誌?
- 28. 從log4j 2庫中禁用日誌記錄,如何?
- 29. 如何在庫中提供日誌記錄API
- 30. Java日誌記錄:它是日誌還是日誌記錄器?
有大量的第三方庫提供更多功能完整的實現。例如,在標準庫中,我錯過了自定義格式化和日誌級別(調試,信息...)的方便選項,並最終實現了自己的庫 - [go-log](https://github.com/scale -IT /去日誌)。看看它。 –