Golang - 日志

官方 Log 包

方法

  • 输出到 logger.out: log.Print(), log.Printf(), log.Println()
  • 输出到 logger.out, 再执行 os.Exit(1): log.Fatal(), log.Fatalln(), log.Fatalf()
  • 输出到 logger.out, 再执行 panic(): log.Panic(), log.Panicln(), log.Panicf()

logger 结构体

type Logger struct {
	mu     sync.Mutex // ensures atomic writes; protects the following fields
	prefix string     // 日志前缀
    flag   int        // 日志格式
    // 0 空
    // 1 年月日
    // 2 时分秒
    // 3 1+2 默认, 一般情况下用这个即可
    // 4 时分秒+毫秒
    // 5 年月日+时分秒+毫秒
	out    io.Writer  // 输出位置
	buf    []byte     // for accumulating text to write
}

使用示例

  • 打印到终端(默认)
    package main
    
    import "log"
    
    func main() {
    	log.Print("abc")
    }
    
  • 打印到文件
    package main
    
    import (
    	"log"
    	"os"
    )
    
    func main() {
    
    	// 打开一个文件作为日志文件
    	logFile, _ := os.OpenFile("xx.log", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.ModePerm)
    	defer logFile.Close()
    	
        log.SetOutput(logFile)
    	// log.SetPrefix("[thc] ")  // 一般情况下不需要设置, 使用默认即可
    	// log.SetFlags(3)          // 一般情况下不需要设置, 使用默认即可
        log.Print("xxx")
    
    
    	// 单独生成一个 log.Logger, 效果同上
    	logger := log.New(logFile, "[thc] ", 3)
        logger.Print("xxx")
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>