1.软文推荐

2.软文推荐

3.软文推荐

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")
}

本文来源:www.lxlinux.net/12277.html,若引用不当,请联系修改。

相关文章 8

1

深圳罗湖模板网站(深圳网站制作模板) 3分钟前

合优网络成立至今已有14年,一直秉承着"诚信、责任、团队、敬业"的服务宗旨,成立至今获得了5万多家企业的认同并建立起长期合作的伙伴...

2

Linux启动zookeeper具体步骤 5分钟前

Linux如何启动zookeeper? ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要...

3

阿里云服务器系统盘40G不够用了怎么办?如何解决?(阿里云服务器系统盘扩容) 8分钟前

最近,公司在做一个项目,用的是阿里云ECS云服务器,突然阿里云服务器系统盘40G不够用如何解决?其实,阿里云服务器的系统盘可以扩容...

4

2020年8月腾讯云服务器收费标准价格表(腾讯发布会2020) 9分钟前

腾讯云服务器配置不同价格不同,云服务器规格不同价格也不同,云服务器网分享腾讯云服务器1核2G、2核4G、2核8G、4核8G、8核16G等云服务器...

5

$16/年 384M内存 8G硬盘 400G流量 1Gbps KVM 堪萨斯 rfchost 10分钟前

rfchost是一个国外开设的主机商家,官方介绍公司名字叫上海华娟信息技术公司,成立也有三年多了,主要经营VPS,采用KVM虚拟架构,机房有...

6

Linux内存映射详解 11分钟前

内存映射就是用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,相反,内核空...

7

【真实测评】浩航互联:美国洛杉矶三网CN2 GIA线路机器测评数据 13分钟前

前两天博主介绍过浩航互联的美国洛杉矶CN2 GIA线路的机器,今天博主拿到了商家提供测试机器,下面给大家进行一系列测试,不过博主拿到...

8

常见的七个灾难性的云计算错误 14分钟前

鉴于如此多的业务经营在云端进行,云配置错误或云优化欠佳的代价可能非常大。这就是为什么了解其他公司在云计算方面所犯的常见错误...