导读 Golang的log包短小精悍,可以非常轻松的实现日志打印转存功能,下面这篇文章主要给大家介绍了关于Go语言常用的打log方式的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
文章介绍了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")
}

原文来自:

本文地址://q13zd.cn/go-log-linux.html编辑:向金平,审核员:逄增宝

Linux大全:

Linux系统大全:

红帽认证RHCE考试心得: