更新时间:2024-03-26 GMT+08:00

日志初始化(Python SDK)

功能说明

通过开启SDK日志功能,可将接口调用过程中产生的日志信息记录到日志文件,用于后续的数据分析或问题定位。具体步骤如下:

  1. 找到OBS Python SDK开发包(github获取)中的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开启日志功能。
  • 日志功能默认是关闭的,需要主动开启。
  • 您可以从日志分析章节获取更多关于SDK日志的信息。
  • 您可以根据实际需要在系统中修改日志文件的权限。

OBS Python SDK的日志模块是线程安全非进程安全的,如果在多进程场景下使用ObsClient请务必为每个ObsClient配置独立的日志路径,防止多个进程并发写日志时发生冲突。

方法定义

obsClient.initLog(
    log_config='*** Your Log Configuration Parameters ***',
    log_name='*** Your Log Name ***'
)

构造函数参数描述

字段名

类型

约束

说明

log_config

LogConf

必选

日志配置参数。

log_name

str

可选

日志名称。

表1 LogConf

参数名称

参数类型

是否必选

描述

config_file

str

必选

日志配置文件路径。

sec

str

可选

日志配置文件中的section名称,默认为‘LOGCONF’。

代码样例

# 引入模块
from obs import ObsClient

# 推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。
# 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/intl/zh-cn/usermanual-ca/ca_01_0003.html。
ak = os.getenv("AccessKeyID")
sk = os.getenv("SecretAccessKey")
# 【可选】如果使用临时AKSK和SecurityToken访问OBS,则同样推荐通过环境变量获取
security_token = os.getenv("SecurityToken")
# server填写Bucket对应的Endpoint, 这里以中国-香港为例,其他地区请按实际情况填写。
server = "https://obs.ap-southeast-1.myhuaweicloud.com" 
# 创建obsClient实例
# 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过security_token参数指定securityToken值
obsClient = ObsClient(access_key_id=ak, secret_access_key=sk, server=server)

# 引入日志模块
from obs import LogConf

# 指定日志配置文件路径,初始化ObsClient日志
obsClient.initLog(LogConf('./log.conf'), '*** Your Log Name ***')

# 使用ObsClient访问OBS服务

# 关闭ObsClient日志
obsClient.close()