log.Logger可通过log.New创建,自定义输出目标、前缀和标志。示例:输出到标准输出或文件,使用io.MultiWriter实现多目标输出,结合log.Ldate、log.Ltime等标志控制格式。

在Go语言中,log.Logger 是标准库 log 提供的一个灵活的日志记录器类型,允许自定义输出目标、前缀和标志。通过创建自定义的 log.Logger 对象,可以更好地控制日志格式和输出位置。
log.Logger 可以通过 log.New 函数创建,该函数接收三个参数:
package main
import (
"io"
"log"
"os"
)
func main() {
// 创建一个输出到标准输出的日志器
logger := log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)
// 使用自定义logger输出日志
logger.Println("程序启动成功")
logger.Printf("当前用户: %s", "alice")
}
将日志写入文件是常见需求。只需将文件句柄作为 io.Writer 传入即可。
示例代码:file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
log.Fatal("无法打开日志文件:", err)
}
defer file.Close()
// 创建写入文件的日志器
fileLogger := log.New(file, "DEBUG: ", log.LstdFlags|log.Lshortfile)
fileLogger.Println("这是一条调试信息")
使用 io.MultiWriter 可以让日志同时输出到多个目标。
立即学习“go语言免费学习笔记(深入)”;
示例代码:file, _ := os.OpenFile("combined.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
defer file.Close()
multiWriter := io.MultiWriter(os.Stdout, file)
combinedLogger := log.New(multiWriter, "APP: ", log.LstdFlags|log.Lmicroseconds)
combinedLogger.Println("这条日志会同时出现在终端和文件中")
log包提供多个常量用于组合日志格式:
以上就是Golang logLogger日志对象创建示例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号