欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Golang如何配置和創(chuàng)建Logger-創(chuàng)新互聯(lián)

1.log

1.1使用Logger

log包定義了Logger類型,該類型提供了一些格式化輸出的方法。
本包也提供了一個預(yù)定義的"標(biāo)準(zhǔn)"logger,可以通過調(diào)用Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|fatalln)和Panic系列(Panic|Panicf|PanicLn)來使用,比自行創(chuàng)建一個logger對象更容易使用。
例如:我們可以像下面的代碼一樣,直接通過log包來調(diào)用上岸提到的方法,默認(rèn)它們會把日志信息大隱刀終端界面。
package main

import (
   "log"
)

func main() {
   log.Println("這是一條很普通的日志。")
   v := "很普通的"
   log.Printf("這是一條%s日志。\n", v)
   log.Fatalln("這是一條會觸發(fā)fatal的日志。")
   log.Panicln("這是一條會觸發(fā)panic的日志。")
}

結(jié)果:
2020/02/06 21:57:13 這是一條很普通的日志。
2020/02/06 21:57:13 這是一條很普通的日志。
2020/02/06 21:57:13 這是一條會觸發(fā)fatal的日志。

Process finished with exit code 1
logger會打印每條日志信息的日期、時間,默認(rèn)輸出到系統(tǒng)的標(biāo)準(zhǔn)錯誤。
Fatal系列函數(shù)會寫入日志信息后調(diào)用os.Exit(1)。
Panic系列函數(shù)會在寫入日志信息后panic。

1.2配置logger

1.2.1標(biāo)準(zhǔn)logger的配置

默認(rèn)情況下的logger只會提供日志的時間信息,但是很多情況下,我們希望得到更多信息,比如記錄該日志的文件名和行號等。
log標(biāo)準(zhǔn)庫中為我們提供了定制這些設(shè)置的方法。
log標(biāo)準(zhǔn)庫中的Flags函數(shù)會返回標(biāo)準(zhǔn)logger的輸出配置,而SetFlags函數(shù)是用來設(shè)置標(biāo)準(zhǔn)logger的輸出配置。
func Flags() int
func SetFlags(flag int)
flag選項
log標(biāo)準(zhǔn)庫提供了如下的flag選項,它們是一系列定義好的常量。
const (
   // 控制輸出日志信息的細(xì)節(jié),不能控制輸出的順序和格式。
   // 輸出的日志在每一項后會有一個冒號分隔:例如2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message
   Ldate     = 1 << iota   // 日期:2009/01/23
   Ltime             // 時間:01:23:23
   Lmicroseconds         // 微秒級別的時間:01:23:23.123123(用于增強(qiáng)Ltime位)
   Llongfile           // 文件全路徑名+行號: /a/b/c/d.go:23
   Lshortfile           // 文件名+行號:d.go:23(會覆蓋掉Llongfile)
   LUTC              // 使用UTC時間
   LstdFlags   = Ldate | Ltime // 標(biāo)準(zhǔn)logger的初始值
)
package main

import (
   "log"
)

func main() {
   //設(shè)置logger
   log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
   log.Println("這是一條很普通的日志。")
}

結(jié)果:
2020/02/06 22:20:40.508109 /Users/tongchao/Desktop/gopath/src/test/test.go:10: 這是一條很普通的日志。

Process finished with exit code 0

1.2.2配置日志前綴

log標(biāo)準(zhǔn)庫中還提供了關(guān)于日志信息前綴的兩個方法:
func Prefix() string  //查看標(biāo)準(zhǔn)logger的輸出前綴
func SetPrefix(prefix string)  //設(shè)置輸出前綴
package main

import (
   "log"
)

func main() {
   //設(shè)置logger
   log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
   log.Println("這是一條很普通的日志。")
   log.SetPrefix("[前綴信息]")
   log.Println("這是一條很普通的日志。")
}

結(jié)果:
2020/02/06 22:25:27.654416 /Users/tongchao/Desktop/gopath/src/test/test.go:10: 這是一條很普通的日志。
[前綴信息]2020/02/06 22:25:27.654601 /Users/tongchao/Desktop/gopath/src/test/test.go:12: 這是一條很普通的日志。

Process finished with exit code 0

這樣可以在日志信息中添加指定的前綴,方便之后對日志信息進(jìn)行檢索和處理。

1.2.3配置日志輸出位置

func SetOutput(w io.Writer)

setOutput函數(shù)用來設(shè)置標(biāo)準(zhǔn)logger的輸出目的地,默認(rèn)是標(biāo)準(zhǔn)錯誤輸出。
把日志輸出到同目錄下的xx.log文件中。

package main

import (
   "fmt"
   "log"
   "os"
)

func main() {
   logFile, err := os.OpenFile("./xx.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
   if err != nil {
     fmt.Println("open log file failed, err:", err)
     return
   }
   log.SetOutput(logFile)
   log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
   log.Println("這是一條很普通的日志。")
   log.SetPrefix("[前綴信息]")
   log.Println("這是一條很普通的日志。")
}

結(jié)果:
xx.log中內(nèi)容為
2020/02/06 22:30:22.369892 /Users/tongchao/Desktop/gopath/src/test/test.go:17: 這是一條很普通的日志。
[前綴信息]2020/02/06 22:30:22.370229 /Users/tongchao/Desktop/gopath/src/test/test.go:19: 這是一條很普通的日志。
如果要使用標(biāo)準(zhǔn)的logger,會把上面的配置操作寫到init函數(shù)中
func init() {
   logFile, err := os.OpenFile("./xx.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
   if err != nil {
     fmt.Println("open log file failed, err:", err)
     return
   }
   log.SetOutput(logFile)
   log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
}

1.3創(chuàng)建logger

log標(biāo)準(zhǔn)庫中還提供了創(chuàng)建新logger對象的構(gòu)造函數(shù)New,支持我們自己創(chuàng)建logger示例。
New函數(shù)的簽名如下:
func New(out io.Writer, prefix string, flag int) *Logger
New創(chuàng)建一個Logger對象。其中,參數(shù)out設(shè)置日志信息寫入的目的地。參數(shù)prefix會添加到生成的每一條日志前面。參數(shù)flag定義日志的屬性(時間、文件等等)。
package main

import (
   "log"
   "os"
)

func main() {
   logger := log.New(os.Stdout, "<New>", log.Lshortfile|log.Ldate|log.Ltime)
   logger.Println("這是自定義的logger記錄的日志。")
}

結(jié)果:
<New>2020/02/06 22:34:17 test.go:10: 這是自定義的logger記錄的日志。

Process finished with exit code 0
Go內(nèi)置的log庫功能有限,不能滿足不同級別日志的情況,我們在實(shí)際的項目中根據(jù)自己的需要選擇第三方日志庫,如logrus--https://github.com/sirupsen/logrus,zap--https://github.com/uber-go/zap等

水富ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享標(biāo)題:Golang如何配置和創(chuàng)建Logger-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://aaarwkj.com/article38/ccjhsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站設(shè)計公司、營銷型網(wǎng)站建設(shè)、外貿(mào)建站外貿(mào)網(wǎng)站建設(shè)、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
日本熟妇中文字幕系列| 国产精品一区二区三区激情| 国产美女直播亚洲一区色| 99久久久久国产精品免费 | 欧美在线观看香蕉视频| 国产高清av免费观看| 亚洲精品国产熟女av| 日韩av中文一区二区| 亚洲国际精品女人乱码| 国产精品综合av一区二区国产馆| 三欲一区二区三区中文字幕| 一区二区在线观看激情| 强暴美女视频大全久久久| 亚洲黄色av网址在线观看| 亚洲欧美一区二区三区三| 午夜影院在线免费观看三区| 欧美一级黄色免费电影| 亚洲精品国产av成人网| 四虎精品视频在线免费| 护士一级特黄特色大片| 日本视频一曲二曲三曲四曲| 欧美一区二区三区一级| 亚洲av日韩欧美精品| 一级片高清在线观看国产| 懂色av中文一区二区| 欧美午夜精品一二三区| 精品国产欧美成人一区| 亚洲日本一区二区高清| 日本三级黄色免费的网站| 粉嫩国产av一区二区三区| 狼人综合狼人综合网站| 五月激情开心久久婷婷| 秒播视频午夜福利在线观看| 人人妻人人澡人人爽久久av| 精品国产精品中文字幕| 亚洲av日韩综合一区尤物| 精品日韩av高清一区二区三区| 欧美日韩综合精品无人区| 亚洲欧美激情啪啪啪| 亚洲狠狠爱一区二区三区| 蜜臀av网站在线播放|