LazyGophers Log 提供了一个全面的日志记录 API,支持多日志级别、自定义格式化、异步写入和构建标签优化。本文档涵盖了所有公共 API、配置选项和使用模式。
提供所有日志记录功能的主要日志记录器结构体。
创建一个具有默认配置的新日志记录器实例:
DebugLevelos.Stdout示例:
表示具有所有关联元数据的单个日志条目。
设置最低日志级别。低于此级别的消息将被忽略。
参数:
level:要处理的最低日志级别返回值:
*Logger:返回自身以支持方法链式调用示例:
设置日志消息的一个或多个输出目标。
参数:
writers:一个或多个 io.Writer 输出目标返回值:
*Logger:返回自身以支持方法链式调用示例:
设置日志输出的自定义格式化器。
参数:
formatter:实现 Format 接口的格式化器返回值:
*Logger:返回自身以支持方法链式调用示例:
启用或禁用日志条目中的调用者信息。
参数:
enabled:是否包含调用者信息返回值:
*Logger:返回自身以支持方法链式调用示例:
设置包装日志记录器时调用者信息的堆栈深度。
参数:
depth:要跳过的堆栈帧数返回值:
*Logger:返回自身以支持方法链式调用示例:
为所有日志消息设置前缀或后缀文本。
参数:
prefix/suffix:要前置/后置到消息的文本返回值:
*Logger:返回自身以支持方法链式调用示例:
所有日志记录方法都有两种变体:简单版本和格式化版本。
在 trace 级别记录日志(最详细)。
示例:
在 debug 级别记录开发信息。
示例:
记录信息性消息。
示例:
记录警告消息,用于潜在问题情况。
示例:
记录错误消息。
示例:
记录致命错误并调用 os.Exit(1)。
示例:
记录错误消息并调用 panic()。
示例:
创建具有相同配置的日志记录器副本。
返回值:
*Logger:具有复制设置的新日志记录器实例示例:
创建一个上下文感知的日志记录器,接受 context.Context 作为第一个参数。
返回值:
LoggerWithCtx:上下文感知的日志记录器实例示例:
使用默认全局日志记录器的包级函数。
示例:
返回级别的字符串表示。
示例:
自定义格式化器必须实现此接口。
具有可自定义选项的内置文本格式化器。
创建一个每小时轮转日志文件的写入器。
参数:
filename:日志文件的基础文件名返回值:
io.Writer:轮转文件写入器示例:
为高性能日志记录创建异步写入器。
参数:
writer:底层写入器bufferSize:内部缓冲区大小返回值:
*AsyncWriter:异步写入器实例方法:
示例:
设置和获取当前 goroutine 的追踪 ID。
示例:
该库支持使用构建标签进行条件编译:
该库在内部使用 sync.Pool 来管理:
这减少了高吞吐量场景下的垃圾收集压力。
日志级别检查发生在昂贵操作之前:
对于高吞吐量应用程序:
根据环境使用适当的构建标签:
出于性能考虑,大多数日志记录器方法不返回错误。如果您需要对输出操作进行错误处理,请实现自定义写入器:
所有日志记录器操作都是线程安全的,可以在多个 goroutine 中并发使用,无需额外的同步机制。
本文档提供多种语言版本:
LazyGophers Log 完整 API 参考 - 使用卓越的日志记录构建更好的应用程序!🚀