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

日志分析(Python SDK)

日志配置

OBS Python SDK基于Python日志库提供了日志功能,您可以通过ObsClient.initLog开启日志功能并进行配置。示例代码如下:

# 引入模块
from obs import LogConf
from obs import ObsClient

# 创建ObsClient实例
obsClient = ObsClient(
    access_key_id=os.getenv("AccessKeyID"),
    secret_access_key=os.getenv("SecretAccessKey"),
    server='https://your-endpoint'
)

# 指定日志配置文件路径,初始化ObsClient日志
obsClient.initLog(LogConf('./log.conf'), 'obs_logger');
  • 日志功能默认是关闭的,需要主动开启。
  • 日志配置文件样例(log.conf)包含在OBS Python SDK开发包中,您需要根据实际情况修改log.conf中的配置参数。

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:错误级别,如果设置为这个级别,仅打印发生异常时的错误信息。

配置文件中的LogFileLevel参数用于设置日志文件的日志级别;PrintLogLevel参数用于设置控制台日志的日志级别。