Documentation
¶
Index ¶
Constants ¶
View Source
const ( // 文件大小配置常量 DefaultMaxFileSize = 10 // 默认最大文件大小 (MB) DefaultTimeFormat = "2006-01-02T15:04:05" // 默认时间格式 // 获取调用信息的层数 (0表示当前调用, 1表示调用者, 2表示调用者的调用者, 依此类推) DefaultCallerDepth = 3 // 默认调用信息层数 (3层) // 默认文件写入器配置 DefaultMaxBufferSize = 256 * 1024 // 默认最大缓冲区大小 (256KB) DefaultFlushInterval = 1 * time.Second // 默认最大刷新间隔 (1秒) )
Variables ¶
View Source
var LogLevelPaddedStringMap = map[LogLevel]string{ DEBUG_Mask: "DEBUG", INFO_Mask: "INFO ", WARN_Mask: "WARN ", ERROR_Mask: "ERROR", FATAL_Mask: "FATAL", NONE_Mask: "NONE ", DEBUG: "DEBUG", INFO: "INFO ", WARN: "WARN ", ERROR: "ERROR", }
预构建的日志级别到字符串的映射表(带填充,用于文本格式化)
View Source
var LogLevelStringMap = map[LogLevel]string{ DEBUG_Mask: "DEBUG", INFO_Mask: "INFO", WARN_Mask: "WARN", ERROR_Mask: "ERROR", FATAL_Mask: "FATAL", NONE_Mask: "NONE", DEBUG: "DEBUG", INFO: "INFO", WARN: "WARN", ERROR: "ERROR", }
预构建的日志级别到字符串的映射表(不带填充,用于JSON序列化)
Functions ¶
func GetCachedTimestamp ¶
func GetCachedTimestamp() string
GetCachedTimestamp 获取缓存的时间戳, 读写锁优化版本
性能特点:
- 快路径:原子操作检查 + 读锁保护
- 慢路径:写锁保护更新操作
- 多读者并发, 单写者独占
- 无unsafe操作, 完全内存安全
返回值:
- string: 格式化的时间戳字符串 "2006-01-02 15:04:05"
func GetCallerInfo ¶
GetCallerInfo 获取调用者的信息 (优化版本, 使用文件名缓存)
参数:
- skip: 跳过的调用层数 (通常设置为1或2, 具体取决于调用链的深度)
返回值:
- []byte: 调用者的信息, 格式为 "file:function:line"
func LogLevelToPaddedString ¶
LogLevelToPaddedString 将 LogLevel 转换为带填充的字符串(用于文本格式化)
参数:
- level: 要转换的日志级别
返回值:
- string: 对应的带填充的日志级别字符串(7个字符),如果 level 无效, 则返回 "UNKNOWN"
Types ¶
type LogFormatType ¶
type LogFormatType int
LogFormatType 日志格式选项
格式:
- Detailed: 详细格式
- Json: json格式
- Timestamp: 时间格式
- KVFmt: 键值对格式
- LogFmt: logfmt格式
- Custom: 自定义格式
const ( Def LogFormatType = iota // 默认格式 Json // json格式 Timestamp // 时间格式 KVFmt // KVFmt 键值对格式 LogFmt // logfmt格式 Custom // 自定义格式 )
日志格式选项
func (LogFormatType) String ¶
func (f LogFormatType) String() string
String 将 LogFormatType 转换为对应的字符串
type LogLevel ¶
type LogLevel uint8
LogLevel 定义为位掩码类型,每一位代表一个日志级别
支持的日志级别:
- DEBUG: 调试级别
- INFO: 信息级别
- WARN: 警告级别
- ERROR: 错误级别
- FATAL: 致命错误级别
- NONE: 不记录任何日志级别
const ( DEBUG_Mask LogLevel = 1 << iota // 1 表示Debug级别 INFO_Mask // 2 表示Info级别 WARN_Mask // 4 表示Warn级别 ERROR_Mask // 8 表示Error级别 FATAL_Mask // 16 表示Fatal级别 NONE_Mask LogLevel = 0 // 0 表示不启用任何日志 // 预定义的日志级别组合 DEBUG LogLevel = DEBUG_Mask | INFO_Mask | WARN_Mask | ERROR_Mask | FATAL_Mask // Debug及以上级别 INFO LogLevel = INFO_Mask | WARN_Mask | ERROR_Mask | FATAL_Mask // Info及以上级别 WARN LogLevel = WARN_Mask | ERROR_Mask | FATAL_Mask // Warn及以上级别 ERROR LogLevel = ERROR_Mask | FATAL_Mask // Error及以上级别 FATAL LogLevel = FATAL_Mask // Fatal级别 NONE LogLevel = NONE_Mask )
定义日志级别的位掩码
func (LogLevel) MarshalJSON ¶
MarshalJSON 将 LogLevel 转换为 JSON 字符串
返回值:
- []byte: 包含日志级别的 JSON 字符串(带双引号)
- error: 如果转换过程中发生错误,返回非 nil 错误;否则返回 nil
Click to show internal directories.
Click to hide internal directories.