更新时间:2023-11-09 GMT+08:00

日志分析

设置方式

开启系统日志记录,代码如下所示:

static OBSClient *client;
NSString *endPoint = @"your-endpoint";
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量AccessKeyID和SecretAccessKey。
// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/intl/zh-cn/usermanual-ca/ca_01_0003.html
char* ak_env = getenv("AccessKeyID");
char* sk_env = getenv("SecretAccessKey");
NSString *AK = [NSString stringWithUTF8String:ak_env];
NSString *SK = [NSString stringWithUTF8String:sk_env];
    
// 初始化身份验证
OBSStaticCredentialProvider *credentialProvider = [[OBSStaticCredentialProvider alloc] initWithAccessKey:AK secretKey:SK];
    
//初始化服务配置
OBSServiceConfiguration *conf = [[OBSServiceConfiguration alloc] initWithURLString:endPoint credentialProvider:credentialProvider];
    
// 初始化client
client = [[OBSClient alloc] initWithConfiguration:conf];
    
// *****日志设置*******
// 设置系统日志打印
[client addLogger:[OBSDDASLLogger sharedInstance]];
// 打开窗口打印
[client addLogger:[OBSDDTTYLogger sharedInstance]];
    
// 设置日志文件记录
OBSDDFileLogger *fileLogger = [[OBSDDFileLogger alloc] init];
// 保留时间
fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling
// 最大文件数目
fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
    
// 自定义日志添加
[client addLogger:fileLogger];
    
// 日志文件地址
OBSDDLogFileInfo *ts =[fileLogger currentLogFileInfo];
NSLog(@"%@", ts);
    
// 设置日志等级
[client setLogLevel:OBSDDLogLevelDebug];
    
 // 开启日志
[client setASLogOn];

日志级别

当系统出现问题需要定位且当前的日志无法满足要求时,可以通过修改日志的级别来获取更多的信息。其中OBSDDLogLevelVerbose日志信息最丰富,OBSDDLogLevelError日志信息最少。默认为OBSDDLogLevelInfo。

类型

描述

OBSDDLogLevelOff

关闭日志。

OBSDDLogLevelError

只打印错误信息。

OBSDDLogLevelWarning

打印错误和警告信息。

OBSDDLogLevelInfo

打印错误、警告、基本运行信息。

OBSDDLogLevelDebug

打印错误、警告、基本运行、调试信息。

OBSDDLogLevelVerbose

打印所有日志信息。