日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Go語言常用的打log方式詳解_Golang

作者:fwhezfwhez ? 更新時間: 2022-12-01 編程語言

文章介紹了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

欄目分類
最近更新