前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言日志

Go语言日志

原创
作者头像
IT工作者
发布2022-03-31 12:32:04
2300
发布2022-03-31 12:32:04
举报
文章被收录于专栏:程序技术知识

一、日志简介

  • 使用开发工具时,控制台打印的信息就是日志信息
  • 项目最终发布后是没有开发工具的,而需要记录日志应该把信息输出到文件中,这个功能也是日志的功能
  • 在Go语言标准的log包提供了对日志的支持
  • 有三种级别日志输出
  • Print() 输出日志信息
  • Panic() 打印日志信息,并触发panic,日志信息为Panic信息
  • Fatal() 打印日志信息后调用os.Exit(1)
  • 所有日志信息打印时都带有时间,且颜色为红色
  • 每种级别日志打印都提供了三个函数
  • Println()
  • Print()
  • Printf()
  • 日志文件扩展名为log

二、普通日志信息打印

官方源码如下

代码语言:javascript
复制
func Println(v ...interface{}) {
    std.Output(2, fmt.Sprintln(v...))
}

直接使用log包调用Println()即可

代码语言:javascript
复制
log.Println("打印日志信息")

三、Panic日志信息打印

通过源码可以看出在日志信息打印后调用了panic()函数,且日志信息为panic信息

代码语言:javascript
复制
// Panicln is equivalent to Println() followed by a call to panic().
func Panicln(v ...interface{}) {
    s := fmt.Sprintln(v...)
    std.Output(2, s)
    panic(s)
}

执行后输出日志信息,同时也会触发panic

代码语言:javascript
复制
log.Panicln("打印日志信息")

四、致命日志信息

打印日志后,终止程序

代码语言:javascript
复制
// Fatal is equivalent to Print() followed by a call to os.Exit(1).
func Fatal(v ...interface{}) {
    std.Output(2, fmt.Sprint(v...))
    os.Exit(1)
}

执行日志打印后,程序被终止

代码语言:javascript
复制
log.Fatal("打印日志信息")

五、打印日志信息到文件中

  • Go语言标准库支持输出日志信息到文件中.
  • 输出日志时的几种状态
代码语言:javascript
复制
const (
    Ldate         = 1 << iota     // the date in the local time zone: 2022/03/23
    Ltime                         // the time in the local time zone: 03:23:23
    Lmicroseconds                 // microsecond resolution: 01:23:23.123123.  assumes Ltime.
    Llongfile                     // full file name and line number: /a/b/c/d.go:23
    Lshortfile          // final file name element and line number: d.go:23. overrides Llongfile
    LUTC                // if Ldate or Ltime is set, use UTC rather than the local time zone
    LstdFlags     = Ldate | Ltime // initial values for the standard logge
)

代码如下

代码语言:javascript
复制

f, _ := os.OpenFile("D:/golog.log", os.O_APPEND|os.O_CREATE, 07777)
defer f.Close()
logger := log.New(f, "[info]\t", log.Ltime)
logger.Println("输出日志信息")

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档