日志分析
日志配置
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信息等。 |