当前位置: 首页 > news >正文

go 日志框架

内置log

import (
    "log"
    "os"
)

func main() {

    // 设置log
    log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)

    // 自定义日志前缀
    log.SetPrefix("[pprof]")

    log.Println("main ..")
    // 如果用format就用PrintF,而不是Print打印,out: 2025/02/13 11:32:45 普通日志日志
    log.Printf("普通日志%s\n", "日志")
    /**
      2025/02/13 11:32:45 普通日志%s
      日志
    */
    log.Print("普通日志%s\n", "日志")

    // 自定义
    logger := log.New(os.Stdout, "<New>", log.Lshortfile|log.Ldate|log.Ltime)
    logger.Println("这是自定义的logger记录的日志。")

    // 严重错误
    log.Fatalln("严重错误")

    // Panic系列函数会在写入日志信息后panic
    // 在 Go 语言中,panic 是一种用于处理程序异常情况的机制。
    //当程序遇到无法继续执行的严重错误时,可以通过 panic 触发一个运行时错误,
    //导致程序立即停止当前函数的执行,并开始执行延迟函数(defer),最后退出程序。
    log.Panic("使人惶恐的")
}

zap

github:https://github.com/uber-go/zap

import (
    "go.uber.org/zap"
)

/*
*
{"level":"info","ts":1739418401.0806556,"caller":"src/test1.go:11","msg":"This i
s an info log","key":"value","count":1}
{"level":"warn","ts":1739418401.0812044,"caller":"src/test1.go:15","msg":"This i
s an info log","key":"value","count":1}
{"level":"error","ts":1739418401.0812044,"caller":"src/test1.go:19","msg":"This
is an info log","key":"value","count":1,"stacktrace":"main.main\n\t***src/test1.go:19\nruntime.main\n\tC:/Program Files/Go/src/runtime/proc.g
o:267"}
*/
func main() {
    logger, _ := zap.NewProduction()
    defer logger.Sync()

    logger.Info("This is an info log",
       zap.String("key", "value"),
       zap.Int("count", 1),
    )
    logger.Warn("This is an info log",
       zap.String("key", "value"),
       zap.Int("count", 1),
    )
    logger.Error("This is an info log",
       zap.String("key", "value"),
       zap.Int("count", 1),
    )
}

相关文章:

  • Visual Studio Code 2025 安装与高效配置教程
  • 大语言模型架构:从基础到进阶,如何理解和演变
  • Spring 实战技术文档
  • C++标准库——时间
  • 使用 Grafana 监控 Spring Boot 应用
  • 人工智能三剑客:符号主义、连接主义与行为主义的较量与融合
  • 高清下载油管视频到本地
  • 【C语言】经验漫谈:应用情景下的移位操作巧分析
  • 力扣——杨辉三角
  • ioctl函数讲解
  • 电脑开机一段时间就断网,只有重启才能恢复网络(就算插网线都不行),本篇文章直接解决,不要再看别人的垃圾方法啦
  • 巧妙实现右键菜单功能,提升用户操作体验
  • Docker实战-使用docker compose搭建博客
  • WebXR教学 01 基础介绍
  • 开发指南103-jpa的find**/get**全解
  • 【信息系统项目管理师-案例真题】2012下半年案例分析答案和详解
  • 位运算实用技巧与LeetCode实战
  • JAVAweb-标签选择器,盒模型,定位,浮动
  • linux之perf(17)PMU事件采集脚本
  • 使用Supervisor管理PHP脚本进程任务
  • 新闻分析:电影关税能“让好莱坞再次伟大”?
  • 李翔宁:城市的每个人都参与了上海的建造,这一过程还在持续
  • 击败老对手韩国队夺冠!国羽第14次问鼎苏迪曼杯创历史
  • 全国共有共青团员7531.8万名,共青团组织439.7万个
  • 苏迪曼杯八强战,中国队横扫马来西亚队晋级四强
  • 美伊谈判因“后勤原因”推迟,伊朗:视美国做法再定谈判日期