
# 日志分析(Python SDK)
#### 日志配置
OBS Python SDK基于Python日志库提供了日志功能，您可以通过ObsClient.initLog开启日志功能并进行配置。示例代码如下：
```
# 引入模块
import os
from obs import LogConf
from obs import ObsClient
# 创建ObsClient实例
obs_client = ObsClient(
    access_key_id = os.getenv("AccessKeyID"),
    secret_access_key = os.getenv("SecretAccessKey"),
    server = 'https://your-endpoint'
)
# 指定日志配置文件路径，初始化ObsClient日志
obs_client.initLog(LogConf('./log.conf'), 'obs_logger')
```
![](https://support.huaweicloud.com/sdk-python-devg-obs/public_sys-resources/note_3.0-zh-cn.png)
- 日志功能默认是关闭的，需要主动开启。
- 日志配置文件样例（log.conf）包含在OBS Python SDK开发包中，您需要根据实际情况修改log.conf中的配置参数。
 
![](https://support.huaweicloud.com/sdk-python-devg-obs/public_sys-resources/notice_3.0-zh-cn.png)
OBS Python SDK的日志模块是线程安全非进程安全的，如果在多进程场景下使用ObsClient请务必为每个ObsClient配置独立的日志路径，防止多个进程并发写日志时发生冲突。
#### 日志内容格式
SDK日志格式为：日志时间\|进程号\|线程号\|日志级别\|日志内容。示例如下：
```
2017-11-06 13:46:54,936|process:6100|thread:12700|DEBUG|HTTP(s)+XML|OBS_LOGGER|__parse_xml,188|http response result:status:200,reason:OK,code:None,message:None,headers:[('id-2', 'LgOKocHfuHe0rFSUHS6LcChzcoYes0luPgqxhUfCP58xp3MZh2n4YKRPpABV8GEK'), ('connection', 'close'), ('request-id', '0001AFF8E60000015F8FDA1EA5AE04E3'), ('date', 'Mon, 06 Nov 2017 05:42:37 GMT'), ('content-type', 'application/xml')]|
2017-11-06 13:46:54,937|process:6100|thread:12700|INFO|HTTP(s)+XML|OBS_LOGGER|doClose,349|server inform to close connection|
2017-11-06 13:46:54,937|process:6100|thread:12700|INFO|HTTP(s)+XML|OBS_LOGGER|wrapper,59|listBuckets cost 56 ms|
```
#### 日志级别
当系统出现问题需要定位且当前的日志无法满足要求时，可以通过修改日志的级别来获取更多的信息。其中DEBUG日志信息最丰富，ERROR日志信息最少。
具体说明如下：
- DEBUG：调试级别，如果设置为这个级别，将打印SDK记录的所有日志。
- INFO：信息级别，如果设置为这个级别，除了打印WARNING级别的信息外，还将打印HTTP/HTTPS请求的耗时时间等信息。
- WARNING：告警级别，如果设置为这个级别，除了打印ERROR级别的信息外，还将打印部分关键事件的信息。
- ERROR：错误级别，如果设置为这个级别，仅打印发生异常时的错误信息。
![](https://support.huaweicloud.com/sdk-python-devg-obs/public_sys-resources/note_3.0-zh-cn.png)
配置文件中的**LogFileLevel参数** 用于设置日志文件的日志级别；**PrintLogLevel参数**用于设置控制台日志的日志级别。
