爱星物联社区版对Zap日志库进行封装,规范了日志输出的格式,扩展了日志记录的方法;

调用方式:
iotlogger.LogHelper.Info("Info log")
iotlogger.LogHelper.Infof("Infof log: %s", serviceCfg.Logfile)
iotlogger.LogHelper.Debug("Debug log")
iotlogger.LogHelper.Debugf("Debugf log:%s", serviceCfg.Logfile)
iotlogger.LogHelper.Warn("Warn log")
iotlogger.LogHelper.Warnf("Warn log:%s", serviceCfg.Logfile)
iotlogger.LogHelper.Error("Error log")
iotlogger.LogHelper.Errorf("Errorf log:%s", serviceCfg.Logfile)
#Fatal输出日志之后,直接退出程序
iotlogger.LogHelper.Fatal("Errorf log")
iotlogger.LogHelper.Fatalf("Errorf:%s", serviceCfg.Logfile)
#增加标签
iotlogger.LogHelper.WithTag("tag", "这是标签").Error("Errorf log")
iotlogger.LogHelper.WithTag("tag", "这是标签").Errorf("Errorf:%s", serviceCfg.Logfile)
#输出效果如下:
2025-04-07T10:55:59.076+0800 INFO iot_app_api_service/main.go:60 Info log {"programName": "iot_app_api_service"}
2025-04-07T10:55:59.076+0800 INFO iot_app_api_service/main.go:61 Infof log: ./logs/iot_app_api_service.log {"programName": "iot_app_api_service"}
2025-04-07T10:55:59.076+0800 DEBUG iot_app_api_service/main.go:63 Debug log {"programName": "iot_app_api_service"}
2025-04-07T10:55:59.076+0800 DEBUG iot_app_api_service/main.go:64 Debugf log:./logs/iot_app_api_service.log {"programName": "iot_app_api_service"}
2025-04-07T10:55:59.076+0800 WARN iot_app_api_service/main.go:66 Warn log {"programName": "iot_app_api_service"}
2025-04-07T10:55:59.077+0800 WARN iot_app_api_service/main.go:67 Warn log:./logs/iot_app_api_service.log {"programName": "iot_app_api_service"}
2025-04-07T10:55:59.077+0800 ERROR iot_app_api_service/main.go:69 Error log {"programName": "iot_app_api_service"}
2025-04-07T10:55:59.077+0800 ERROR iot_app_api_service/main.go:70 Errorf log:./logs/iot_app_api_service.log {"programName": "iot_app_api_service"}
2025-04-07T10:55:59.077+0800 ERROR iot_app_api_service/main.go:72 Errorf log {"programName": "iot_app_api_service", "tag": "这是标签"}
2025-04-07T10:55:59.077+0800 ERROR iot_app_api_service/main.go:73 Errorf:./logs/iot_app_api_service.log {"programName": "iot_app_api_service", "tag": "这是标签"}
全局crash日志捕获
框架对于crash则封装了全局日志捕获和记录,并随着Zap的日志组件一起初始化,当服务出现crash会将报错信息记录到{文件文件}.error文件中;
global_exception.RedirectStderr(filename)

报错信息有详细记录报错的位置,方便开发人员进行定位和排查;

日志的配置说明:
找到配置文件conf/open/*.yml,可以看到service存在两个日志相关的配置项,分别是日志的路径和输出日志的级别;而crash日志则是在{logfile}.error进行存储;
service:
logfile: "./logs/iot_app_api_service.log"
loglevel: "debug"
日志分割备份
日志文件超过100MB将会自动分割压缩备份,例如截图中的**.log.gz

如果你想修改日志文件大小的分割线,可以进入到iotlogger.zap.go目录进行设置
