您的位置:首页 > 健康 > 美食 > 上海缪斯设计公司地址_制作app软件多少钱_免费网站统计工具_如何网络推广

上海缪斯设计公司地址_制作app软件多少钱_免费网站统计工具_如何网络推广

2025/4/19 6:38:50 来源:https://blog.csdn.net/chxii/article/details/146341355  浏览:    关键词:上海缪斯设计公司地址_制作app软件多少钱_免费网站统计工具_如何网络推广
上海缪斯设计公司地址_制作app软件多少钱_免费网站统计工具_如何网络推广

核心功能与接口

  1. 基础日志输出
    • Print 系列:支持 Print()Println()Printf(),输出日志不中断程序。
      log.Print("常规日志")          // 输出: 2025/03/18 14:47:13 常规日志 
      log.Printf("格式化: %s", "数据") 
    • Fatal 系列:调用后触发 os.Exit(1) 终止程序,不会执行 defer 函数
      log.Fatal("严重错误") // 输出日志并退出 
    • Panic 系列:输出日志后触发 panic(),可通过 recover() 捕获。
      defer func() { if err := recover(); err != nil {} }()
      log.Panic("触发崩溃")
  2. 预定义 Logger
    • 默认使用 log.Stdout 输出到控制台,可通过 log.SetOutput() 重定向到文件或网络。

配置与定制

  1. 设置日志前缀
    • log.SetPrefix("APP: ") 添加固定前缀,如 APP: 2025/03/18 14:47:13 日志内容
  2. 调整日志格式
    • 通过 log.SetFlags() 组合标志位控制输出内容:
      log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
      // 输出示例: 2025/03/18 14:47:13 main.go:10:  日志内容 
      • 常用标志:Ldate(日期)、Ltime(时间)、Lmicroseconds(微秒)、Llongfile(完整文件路径)、LUTC(UTC 时间)。
  3. 自定义 Logger 对象
    • 使用 log.New() 创建独立 Logger,支持多目标输出:
      
      var (DebugLog = log.New(os.Stdout, "DEBUG: ", log.Ldate|log.Ltime|log.Lshortfile)InfoLog  = log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime)ErrorLog = log.New(os.Stderr, "ERROR: ", log.Ldate|log.Ltime|log.Llongfile)
      )func main() {DebugLog.Println("调试信息")  
      // DEBUG: 2023/10/01 12:00:00 /path/main.go:15InfoLog.Printf("用户登录: %s", "user123") 
      // INFO: 2023/10/01 12:00:00 用户登录: user123ErrorLog.Fatal("数据库连接失败") 
      // ERROR: 2023/10/01 12:00:00 /path/main.go:18 
      }

    • // 输出到文件
      file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
      if err != nil {log.Fatal("打开文件失败:", err)
      }
      defer file.Close()// 设置全局日志输出
      log.SetOutput(file)// 同时输出到文件和标准错误
      multiWriter := io.MultiWriter(file, os.Stderr)
      log.SetOutput(multiWriter)
    • log.SetOutput(io.Discard) 关闭日志


与 fmt 包的差异

特性log 包fmt 包
输出目标默认 stderr,可自定义(文件/网络)默认 stdout
时间戳支持自动添加
并发安全是(内置互斥锁)
程序中断支持 Fatal/Panic 中断仅输出内容
适用场景正式日志记录临时调试输出

    版权声明:

    本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

    我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com