網站首頁 編程語言 正文
文章介紹了3種常用的打log的方式,并賦上了注解
先寫上注意事項,三種方法建議分開測,因為可能在第一種的Fatal會終止運行,Fatal和Panic和Print的區別在于,Fatal會保存日志并終止程序,Panic會保存日志并丟出異常終止程序,Print會保存日志但是程序繼續
main.go
package main import ( "log" "bytes" "fmt" "os" "github.com/astaxie/beego/logs" ) func main() { //1.日志寫入一段緩存里 var buf bytes.Buffer logger := log.New(&buf, "logger: ", log.Llongfile)//三個參數對應輸出對象,前綴,文件名然后整合成前綴 logger.Print("Hello, log file!") //實際log信息 fmt.Println(&buf) //2.日志寫入一段文件里,執行完刷新工程,會有文件debug.log打開來看 fileName := "debug.log" //在工程路徑下和src同級,也可以寫絕對路徑,不過要注意轉義符 logFile,err := os.Create(fileName) //創建該文件,返回句柄 defer logFile.Close() //確保文件在該函數執行完以后關閉 if err != nil { log.Fatalln("open file error !") } //庫里的log包不存在級別,只有Print,Fatal,Panic三種,想要7種級別,可以用syslog包或者框架 debugLog := log.New(logFile,"",log.Llongfile) debugLog.Print("找到一個低級bug,低級別的日志報告,執行debug記錄后繼續執行") debugLog.Fatal("發現一個嚴重bug,日志已記錄,程序在此終止") debugLog.Panic("哎呀,我沒有被執行,好慘") //3.使用beego框架的log包進行log處理 ,對應7種級別 logInstance:=logs.GetLogger() logInstance.Println("this is a message of http") //an official log.Logger with prefix ORM logs.GetLogger("ORM").Println("this is a message of orm") logs.Debug("my book is bought in the year of ", 2016) logs.Info("this %s cat is %v years old", "yellow", 3) logs.Warn("json is a type of kv like", map[string]int{"key": 2016}) logs.Error(1024, "is a very", "good game") logs.Critical("oh,crash") logs.Notice("fuck") logs.Alert("alert") logs.Emergency("emergency") }
第二種
main.go
package main import ( "os" "log" ) func main() { file, err := os.OpenFile("./testLog/test.log", os.O_CREATE | os.O_WRONLY | os.O_APPEND,os.ModePerm) if err != nil { log.Fatalln(err) } logger := log.New(file, "", log.LstdFlags|log.Llongfile) logger.Println("日志1.") logger.Println("日志23") }
總結
原文鏈接:https://fwhezfwhez.blog.csdn.net/article/details/79203590
相關推薦
- 2022-04-03 django8.5?項目部署Nginx的操作步驟_nginx
- 2022-08-10 go?modules中replace使用方法_Golang
- 2022-07-24 Python寫安全小工具之TCP全連接端口掃描器_python
- 2022-02-17 Chrome瀏覽器/Jupyter lab下載文件提示已經被禁止
- 2023-04-01 C++11中強類型枚舉的使用_C 語言
- 2022-11-10 Android自定義DataTimePicker日期時間選擇器使用詳解_Android
- 2022-05-22 Python數據結構之隊列詳解_python
- 2022-05-10 thymeleaf跳轉到響應頁面(modelandview 中的view)
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支