logger
2025/5/14大约 2 分钟componentloggerzap
日志组件说明
logger
是基于高性能日志库 zap封装的日志组件,提供更便捷的日志管理功能,点击查看 logger 使用示例。
配置说明
在 sponge 创建的服务中,日志组件默认配置为:
- 日志功能:启用
- 输出目标:标准终端输出
- 日志格式:console(可配置为 json 格式)
- 支持功能:日志文件存储、日志切割、日志保留时间设置
配置方式:
在configs
目录下的 yaml 配置文件中设置logger
字段:
# logger 设置
logger:
level: "info" # 输出日志级别 debug, info, warn, error,默认是 debug
format: "console" # 输出格式,console 或 json,默认是 console
isSave: false # false:输出到终端,true:输出到文件,默认是 false
logFileConfig: # isSave=true 时有效
filename: "out.log" # 文件名称,默认值 out.log
maxSize: 10 # 最大文件大小(MB),默认值10MB
maxBackups: 100 # 保留旧文件的最大个数,默认值100个
maxAge: 30 # 保留旧文件的最大天数,默认值30天
isCompression: false # 是否压缩/归档旧文件,默认值 false
文件日志配置
如需启用文件日志功能:
- 在配置文件中设置
logFileConfig
相关参数 - 在代码文件
cmd/your_server_name/initApp.go
中找到// initializing log
部分 - 取消以下代码的注释:
// initializing log
_, err := logger.Init(
logger.WithLevel(cfg.Logger.Level),
logger.WithFormat(cfg.Logger.Format),
logger.WithSave(
cfg.Logger.IsSave,
//logger.WithFileName(cfg.Logger.LogFileConfig.Filename),
//logger.WithFileMaxSize(cfg.Logger.LogFileConfig.MaxSize),
//logger.WithFileMaxBackups(cfg.Logger.LogFileConfig.MaxBackups),
//logger.WithFileMaxAge(cfg.Logger.LogFileConfig.MaxAge),
//logger.WithFileIsCompression(cfg.Logger.LogFileConfig.IsCompression),
),
)
日志格式说明
默认日志格式特性:
- 使用特殊标记
<<<<
表示请求开始日志 - 使用特殊标记
>>>>
表示请求结束日志 - 通过相同的
request_id
可追踪完整请求链路日志 - 开始和结束标记成对出现
简化日志输出
如需减少日志输出量,可通过以下方式切换为简单日志模式:
Web 服务:
- 将
middleware.Logging
替换为middleware.SimpleLog
gRPC 服务:
- 将
interceptor.UnaryServerLog
替换为interceptor.UnaryServerSimpleLog
- 将
interceptor.StreamServerLog
替换为interceptor.StreamServerSimpleLog