最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2022年10月25日 12:03:14   作者:fwhezfwhez  
Golang的log包短小精悍,可以非常輕松的實現(xiàn)日志打印轉(zhuǎn)存功能,下面這篇文章主要給大家介紹了關(guān)于Go語言常用的打log方式的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

文章介紹了3種常用的打log的方式,并賦上了注解

先寫上注意事項,三種方法建議分開測,因為可能在第一種的Fatal會終止運行,Fatal和Panic和Print的區(qū)別在于,Fatal會保存日志并終止程序,Panic會保存日志并丟出異常終止程序,Print會保存日志但是程序繼續(xù)

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)//三個參數(shù)對應(yīng)輸出對象,前綴,文件名然后整合成前綴
    logger.Print("Hello, log file!") //實際log信息
    fmt.Println(&buf)

    //2.日志寫入一段文件里,執(zhí)行完刷新工程,會有文件debug.log打開來看
    fileName := "debug.log"  //在工程路徑下和src同級,也可以寫絕對路徑,不過要注意轉(zhuǎn)義符
    logFile,err  := os.Create(fileName)  //創(chuàng)建該文件,返回句柄
    defer logFile.Close()      //確保文件在該函數(shù)執(zhí)行完以后關(guān)閉
    if err != nil {  
        log.Fatalln("open file error !")  
    }  

    //庫里的log包不存在級別,只有Print,F(xiàn)atal,Panic三種,想要7種級別,可以用syslog包或者框架
    debugLog := log.New(logFile,"",log.Llongfile)  
    debugLog.Print("找到一個低級bug,低級別的日志報告,執(zhí)行debug記錄后繼續(xù)執(zhí)行")
    debugLog.Fatal("發(fā)現(xiàn)一個嚴(yán)重bug,日志已記錄,程序在此終止")
    debugLog.Panic("哎呀,我沒有被執(zhí)行,好慘")

    //3.使用beego框架的log包進行l(wèi)og處理 ,對應(yīng)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")
}

總結(jié)

到此這篇關(guān)于Go語言常用的打log方式的文章就介紹到這了,更多相關(guān)Go語言log詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go處理JSON數(shù)據(jù)的實現(xiàn)

    Go處理JSON數(shù)據(jù)的實現(xiàn)

    本文主要介紹了Go處理JSON數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • golang中xorm的基本使用說明

    golang中xorm的基本使用說明

    這篇文章主要介紹了golang中xorm的基本使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go語言學(xué)習(xí)之WaitGroup用法詳解

    Go語言學(xué)習(xí)之WaitGroup用法詳解

    Go語言中的?WaitGroup?和?Java?中的?CyclicBarrier、CountDownLatch?非常類似。本文將詳細為大家講講WaitGroup的用法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-06-06
  • 詳解golang中發(fā)送http請求的幾種常見情況

    詳解golang中發(fā)送http請求的幾種常見情況

    這篇文章主要介紹了詳解golang中發(fā)送http請求的幾種常見情況,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 簡單講解Go程序中使用MySQL的方法

    簡單講解Go程序中使用MySQL的方法

    這篇文章主要介紹了Go程序中使用MySQL的方法,需要使用第三方包來進行連接,需要的朋友可以參考下
    2015-10-10
  • golang中json反序列化可能遇到的問題

    golang中json反序列化可能遇到的問題

    這篇文章主要給大家介紹了關(guān)于golang中json反序列化可能遇到的問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • 如何將Golang數(shù)組slice轉(zhuǎn)為逗號分隔的string字符串

    如何將Golang數(shù)組slice轉(zhuǎn)為逗號分隔的string字符串

    這篇文章主要介紹了如何將Golang數(shù)組slice轉(zhuǎn)為逗號分隔的string字符串問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 解析Golang中的鎖競爭問題

    解析Golang中的鎖競爭問題

    這篇文章主要介紹了golang中的鎖競爭問題,本文通過實例代碼給大家詳細講解,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • Go語言copy()實現(xiàn)切片復(fù)制

    Go語言copy()實現(xiàn)切片復(fù)制

    本文主要介紹了Go語言copy()實現(xiàn)切片復(fù)制,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • go語言使用range來接收通道里面的數(shù)據(jù)

    go語言使用range來接收通道里面的數(shù)據(jù)

    本文主要介紹了go語言使用range來接收通道里面的數(shù)據(jù),for ... range?循環(huán)會一直從通道中接收值,直到通道關(guān)閉并且所有值都被接收完畢,下面就來介紹一下,感興趣的可以了解一下
    2025-04-04

最新評論

繁昌县| 浮山县| 花垣县| 盐山县| 江北区| 全州县| 常州市| 安吉县| 寻甸| 元江| 太康县| 霍州市| 龙川县| 东丽区| 屏南县| 武邑县| 汝阳县| 靖边县| 大埔县| 友谊县| 永年县| 长岛县| 类乌齐县| 永修县| 同德县| 西乌| 博野县| 大丰市| 南部县| 六枝特区| 鹤峰县| 渝北区| 红原县| 南溪县| 泸西县| 紫阳县| 西乡县| 新田县| 越西县| 垦利县| 镇沅|