更新时间:2023-12-22 GMT+08:00

日志分析

日志配置

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

// 引入依赖包
import (
       obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs"
)

func main() {
       // 设置日志文件存放的路径
       var logFullPath string = "./logs/OBS-SDK.log"
       // 设置每个日志文件的大小,单位:字节
       var maxLogSize int64 = 1024 * 1024 * 10
       // 设置保留日志文件的个数
       var backups int = 10
       // 设置日志的级别
       var level = obs.LEVEL_INFO
       // 设置是否打印日志到控制台
       var logToConsole bool = false

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

日志内容格式

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

2018/03/13 16:21:50 [INFO]: http.go:79|Enter method ListBuckets...
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信息等。