1[← 调试](6-Debug-CN.md) | 日志[(English)](7-Logger-EN.md) | [并发 →](8-Concurrent-CN.md) 2*** 3 4# 日志 5 6## 描述 7 8logger 主要用于提供支持审计的能力,用于记录每次的调用情况,类似服务端的 access log。 9 10## 使用 11 12### 初始化日志 13 14如果您想要使用日志功能,您需要先初始化一个日志对象,您可以在初始化日志对象的时候设置日志等级,日志模版, 日志的输出路径以及 channel。 15```go 16// level: 默认为 info 17// channel: 默认为 AlibabaCloud 18// file: 一个实现了 io.writer 接口的对象 19// templete: 日志的模板, 若不输入,则默认为 `{time} {channel}: "{method} {uri} HTTP/{version}" {code} {cost} {hostname}` 20client.SetLogger("level", "channel", file, templete) // 设置客户端的日志, 当您调用该方法,默认为您开启日志功能 21``` 22 23### 相关操作 24 25```go 26logger := client.GetLogger() // 获取客户端的 logger 27client.OpenLogger() // 开启日志功能,若此时客户端的 logger 不存在, 则创建一个配置一个默认的 logger 28client.CloseLogger() // 关闭日志功能 29client.GetLoggerMsg() // 获取上一条日志信息,若此时客户端的 logger 不存在, 则创建一个配置一个默认的 logger 30client.SetTemplate(templete) // 设置日志模板,若此时客户端的 logger 不存在, 则创建一个配置一个默认的 logger 31client.GetTemplate() // 获取当前的日志模板,若此时客户端的 logger 不存在, 则创建一个配置一个默认的 logger 32``` 33 34### 变量 35 36| 变量 | 描述 | 37|----------|-------------| 38| {channel} | 日志的对象 | 39| {host} | 请求主机 | 40| {ts} | GMT中的 ISO 8601日期 | 41| {method} | 请求方法 | 42| {uri} | 请求的URI | 43| {version} | 协议版本 | 44| {target} | 请求目标 (path + query) | 45| {hostname} | 发送请求的计算机的主机名 | 46| {code} | 响应的状态代码(如果可用) | 47| {error} | 任何错误消息(如果有) | 48| {req_headers} | 请求头 | 49| {res_headers} | 响应头 | 50| {pid} | PID | 51| {cost} | 耗时 | 52| {start_time} | 开始时间 | 53 54*** 55[← 调试](6-Debug-CN.md) | 日志[(English)](7-Logger-EN.md) | [并发 →](8-Concurrent-CN.md) 56