
# 日志初始化(Python SDK)
#### 功能说明
通过开启SDK日志功能，可将接口调用过程中产生的日志信息记录到日志文件，用于后续的数据分析或问题定位。具体步骤如下：
1. 找到OBS Python SDK开发包([github](https://github.com/huaweicloud/huaweicloud-sdk-python-obs)获取)中的log.conf文件。其内容格式如下：
   ```
   [LOGCONF]
   #Configure log file dir
   LogFileDir = ./logs
   #Configure log file name
   LogFileName = eSDK-OBS-PYTHON.log
   #Configure log file size, unit:MB
   LogFileSize     = 30
   #Configure max log file numbers
   LogFileNumber   = 5
   #Configure log level for log file (DEBUG | INFO | WARNING | ERROR)
   LogFileLevel    = INFO
   #Configure whether to print log to console (Yes:1 No:0)
   PrintLogToConsole   = 0
   #Configure log level for console (DEBUG | INFO | WARNING | ERROR)
   PrintLogLevel= WARNING
   ```
   
2. 根据实际情况修改log.conf中的配置参数。
3. 调用ObsClient.initLog开启日志功能。
![](https://support.huaweicloud.com/sdk-python-devg-obs/public_sys-resources/note_3.0-zh-cn.png)
- 日志功能默认是关闭的，需要主动开启。
- 您可以从[日志分析](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_1503.html)章节获取更多关于SDK日志的信息。
- 您可以根据实际需要在系统中修改日志文件的权限。
 
![](https://support.huaweicloud.com/sdk-python-devg-obs/public_sys-resources/notice_3.0-zh-cn.png)
OBS Python SDK的日志模块是线程安全非进程安全的，如果在多进程场景下使用ObsClient请务必为每个ObsClient配置独立的日志路径，防止多个进程并发写日志时发生冲突。
#### 方法定义
```
obs_client.initLog(
    log_config='*** Your Log Configuration Parameters ***',
    log_name='*** Your Log Name ***'
)
```
#### 构造函数参数描述
| **字段名**    | **类型**                                      | **约束** | **说明**  |
|:---|:---|:---|:---|
| log_config | [LogConf] | 必选     | 日志配置参数。 |
| log_name   | str                                         | 可选     | 日志名称。   |
   
 表1LogConf 
| **参数名称**    | **参数类型** | **是否必选** | **描述**                          |
|:---|:---|:---|:---|
| config_file | str      | 必选       | 日志配置文件路径。                       |
| sec         | str      | 可选       | 日志配置文件中的section名称，默认为'LOGCONF'。 |
   
#### 代码样例
```
# 引入模块
import os
from obs import ObsClient
# 推荐通过环境变量获取AK/SK，这里也可以使用其他外部引入方式传入，如果使用硬编码可能会存在泄露风险。
# 您可以登录访问管理控制台获取访问密钥AK/SK，获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。
ak = os.getenv("AccessKeyID")
sk = os.getenv("SecretAccessKey")
# 【可选】如需使用临时AK/SK和SecurityToken访问OBS，则同样推荐通过环境变量获取
security_token = os.getenv("SecurityToken")
#  server填写Bucket对应的Endpoint, 这里以华北-北京四为例，其他地区请按实际情况填写。
server = "https://obs.cn-north-4.myhuaweicloud.com"
# 创建obsClient实例
# 如需使用临时AK/SK和SecurityToken访问OBS，需要在创建实例时通过security_token参数指定securityToken值
obs_client = ObsClient(access_key_id=ak, secret_access_key=sk, server=server)
# 引入日志模块
from obs import LogConf
# 指定日志配置文件路径，初始化ObsClient日志
obs_client.initLog(LogConf('./log.conf'), '*** Your Log Name ***')
# 使用ObsClient访问OBS服务
# 关闭ObsClient日志
obs_client.close()
```
