golang常用的包----寫(xiě)日志 log包

golang提供了一個(gè)簡(jiǎn)單的日志輸出包log,常用用法,已經(jīng)基本滿足日常的日志輸出需求
1、日志級(jí)別有3個(gè),info,fatal,panic
2、 日志文件的輸出

import (
    "log"
    "os"
)
func main() {

    logFile,err:=os.Create("./log.log")
    defer logFile.Close()
    if err !=nil{
        log.Fatalln("create file log.log failed")
    }

    logger:=log.New(logFile,"[Debug]",log.Lshortfile)
    logger.Println("debug info is ,check list ,hello")
    logger.Println("debug info is ,check list ,hello000111")
    logger.SetPrefix("[Info]")
    logger.SetFlags(log.Ldate)
    logger.SetOutput(logFile)
    logger.Print("Info check")
    logger.SetOutput(os.Stdout)
    logger.Print("Info check stdout")
}

輸出的結(jié)果 a.log
[Debug]main.go:45: debug info is ,check list ,hello
[Debug]main.go:46: debug info is ,check list ,hello000111
[Info]2020/09/09 Info check
標(biāo)準(zhǔn)輸出:
[Info]2020/09/09 Info check stdout

樣例二:

package main

import (
    "example/ch07/apps"
    "example/ch07/utils"
    "log"
    "os"
)

func main() {
    logFile,err:=os.OpenFile("./log.log",os.O_WRONLY | os.O_CREATE | os.O_APPEND,0664)
    defer logFile.Close()
    if err !=nil{
        log.Fatalln("create file log.log failed")
    }
    utils.Init(logFile)
    log.Print("Check init info")
    apps.Check()
}

package utils

import (
    "io"
    "log"
)

func Init(logFile io.Writer){
    log.SetOutput(logFile)
    log.SetPrefix("[Info]")
    log.SetFlags(log.Ldate)

}
package apps

import "log"

func Check(){
    log.Println("go to function Check")
}

輸出結(jié)果為:
[Info]2020/09/09 Check init info
[Info]2020/09/09 go to function Check

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容