type
status
date
slug
summary
tags
category
icon
password
AI summary

Go语言标准库之log

log 是 Go 语言中用于日志输出和调试的标准库,它提供了简单并强大的日志功能。通过学习 log 包,可以学习如何输出日志,自定义日志格式,和实现高级的日志功能。

1. 基础使用

1.1 基础函数

  • log.Print:输出日志信息,无自动换行。
  • log.Println:输出日志信息,并自动换行。
  • log.Printf:格式化输出日志信息。

示例

输出:

2. 错误日志

log 包提供了一系列用于处理错误的方法:

2.1 错误函数

  • log.Fatal:输出错误信息并退出程序(调用 os.Exit(1))。
  • log.Fatalln:输出错误信息,自动换行,并退出程序。
  • log.Fatalf:格式化输出错误信息并退出程序。
  • log.Panic:输出错误信息,并触发一个直接上报的异常。

示例

输出:
程序结束。

3. 定制日志格式

3.1 默认格式

默认情况下,日志信息会包含日期和时间。

3.2 自定义格式

可以通过调用 log.SetFlagslog.SetPrefix 来自定义格式。

常用日志标识符

标识符
含义
log.Ldate
输出日期(如 2024/12/24
log.Ltime
输出时间(如 14:00:00
log.Lmicroseconds
输出小秒精度(如 14:00:00.123456
log.Llongfile
输出文件路径和行号
log.Lshortfile
输出短文件名和行号
log.LUTC
日期和时间使用 UTC 时区

示例

输出:

4. 自定义输出

log 包允许输出到自定义的目标,通过 log.SetOutput 设置输出流(如文件或缓冲)。

示例

在文件 app.log 中记录:

5. 优化和高级应用

5.1 自定义 Logger

可以通过创建一个 log.Logger 实例实现高级应用。

示例

输出:

6. 作业训练

  1. 使用默认 log 函数记录一个简单的日志信息,并试图调用 log.Fatal 触发错误。
  1. 通过自定义日志标识符,实现一个格式为 DEBUG: [2024/12/24 14:00:00] message 的日志输出。
  1. 创建一个日志文件,将一系列的日志信息写入文件,并确保文件内容正确。
 
文件操作time