日志分析

更新时间: 2019-03-14 10:05

日志配置

OBS Go SDK基于标准库log提供了日志功能,您可以通过InitLog开启日志、CloseLog关闭并同步缓存中的日志内容到日志文件。示例代码如下:

  1. // 引入依赖包
  2. import (
  3. "obs"
  4. )
  5.  
  6. func main() {
  7. // 设置日志文件存放的路径
  8. var logFullPath string = "./logs/OBS-SDK.log"
  9. // 设置每个日志文件的大小,单位:字节
  10. var maxLogSize int64 = 1024 * 1024 * 10
  11. // 设置保留日志文件的个数
  12. var backups int = 10
  13. // 设置日志的级别
  14. var level = obs.LEVEL_INFO
  15. // 设置是否打印日志到控制台
  16. var logToConsole bool = false
  17.  
  18. // 开启日志
  19. obs.InitLog(logFullPath, maxLogSize, backups, level, logToConsole)
  20. // 关闭日志
  21. obs.CloseLog()
  22. }

日志分析 - 图1 说明:

  • 日志功能默认是关闭的,需要主动开启。
  • 日志默认首先写入缓存(累积一定量后再写入文件),程序退出前调用obs.CloseLog()可同步缓存中的日志内容到日志文件。

日志内容格式

SDK日志格式为:日志时间|打印日志所在的文件:行号|日志级别|日志内容。示例如下:

  1. 2018/03/13 16:21:50 [INFO]: http.go:79|Enter method ListBuckets...
  2. 2018/03/13 16:21:52 [INFO]: http.go:287|Do http request cost 2597 ms

日志级别

当系统出现问题需要定位且当前的日志无法满足要求时,可以通过修改日志的级别来获取更多的信息。SDK提供了代表日志级别的枚举常量以设置不同的日志级别,具体说明如下:


常量名

原始值

说明

LEVEL_OFF

500

关闭级别,如果设置为这个级别,日志打印功能将被关闭。

LEVEL_ERROR

400

错误级别,如果设置为这个级别,仅打印发生异常时的错误信息。

LEVEL_WARN

300

告警级别,如果设置为这个级别,除了打印错误级别的信息外,还将打印一些关键事件的信息。

LEVEL_INFO

200

信息级别,如果设置为这个级别,除了打印告警级别的信息外,还将打印HTTP/HTTPS请求的耗时时间,ObsClient接口的耗时时间等。

LEVEL_DEBUG

100

调试级别,如果设置为这个级别,除了打印INFO级别的信息外,还将打印每次HTTP/HTTPS请求和响应的头信息、鉴权算法计算出的stringToSign信息等。

父主题:异常处理