• Go语言标准库log包


    Go语言标准库log包

    log

    go语言内置的log包实现了简单的日志记录功能,本文主要记录log包的基本使用

     

    使用logger

    log包定义了异常格式化输出的方法。可以通过调用Print系列(Print|Printf|Println),Fatal系列(Fatal|Fatalln|Fatalf),Panic系列(Panicf|Panicln|Panic)

    使用log包来调用方法,默认会将日志输出到终端。

    func main() {
    log.Println("这是一条很普通的日志.")
    v := "很普通的"
    log.Printf("这是一条%s日志 \n", v)
    log.Fatalln("这是一条会触发fatal的日志")
    // log.Panicln("这是一条会触发panic的日志")
    }

    直送代码输入结果:

    2022/05/02 21:39:37 这是一条很普通的日志.
    2022/05/02 21:39:37 这是一条很普通的日志
    2022/05/02 21:39:37 这是一条会触发fatal的日志
    exit status 1

    flag选项

    log标准库提供了如下flag的选项,它们是一些列已定义好的常量。

    const (
      // 控制输出日志信息的细节,不能控制输出的顺序和格式。
      // 输出的日志在每一项后会有一个冒号分隔:例如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(用于增强Ltime位)
      Llongfile                     // 文件全路径名+行号: /a/b/c/d.go:23
      Lshortfile                   // 文件名+行号:d.go:23(会覆盖掉Llongfile)
      LUTC                         // 使用UTC时间
      LstdFlags     = Ldate | Ltime // 标准logger的初始值
    )

    下面我们在记录日志时设置表中logger的输出选项:

    package main

    import (
    "log"
    "os"
    )

    func init() {
    log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
    f, err := os.OpenFile("d:/a.log", os.O_RDONLY|os.O_APPEND|os.O_CREATE, 0666)
    if err != nil {
    log.Fatal("打开日志文件失败")
    }
    log.SetOutput(f)
    }

    func main() {
    log.Println("记录一条普通日志.")
    }

    执行代码结果:

    2022/05/02 21:45:40 main.go:26: 记录一条普通日志.

    配置日志前缀

    复用以上代码

    package main

    import (
    "log"
    "os"
    )

    func init() {
    log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
    f, err := os.OpenFile("d:/a.log", os.O_RDONLY|os.O_APPEND|os.O_CREATE, 0666)
    if err != nil {
    log.Fatal("打开日志文件失败")
    }
    log.SetOutput(f)
    }

    func main() {
    log.SetPrefix("mylogfile")
    log.Println("记录一条普通日志.")
    }

    执行代码结果如下:

    [mylogfile]2022/05/02 21:48:57 main.go:27: 记录一条普通日志.

    配置日志输出到文件

    这里需要使用到SetOutPut函数

    func SetOutput(w io.Writer)

    SetOutput函数用来设置标准logger的输出目的地,默认是标准错误输出。

    使用表中logger,将文件写入到指定文件中。

    package main

    import (
    "log"
    "os"
    )

    func init() {
    log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
    f, err := os.OpenFile("d:/a.log", os.O_RDONLY|os.O_APPEND|os.O_CREATE, 0666)
    if err != nil {
    log.Fatal("打开日志文件失败")
    }
    log.SetOutput(f)
    }

    func main() {
    log.Println("记录一条普通日志.")
    }

    执行代码,结果如下:

    2022/05/02 21:52:43 main.go:27: 记录一条普通日志.
     
  • 相关阅读:
    Jmeter(十三)用Jmeter自带录制工具代理录制手机端应用脚本APP脚本
    AppScan 扫描测试策略
    AppScan 工作原理
    AppScan扫描结果分析及工具栏使用
    Java学习之正则表达式
    Java学习之反射练习
    Java学习之反射
    Java学习之网络编程(TCP协议实例)
    Java学习之网络编程(UDP协议实例)
    Java学习之IO(编码练习--截取字符串根据字节)
  • 原文地址:https://www.cnblogs.com/wushaoyu/p/16216995.html
Copyright © 2020-2023  润新知