Log API
一、启动配置接口
AppID与LogConfig地址请于平台上获取或联系技术支持。
BRLogConfiguration配置
@interface BRLogConfiguration : NSObject
/// AppID
@property (nonatomic, copy) NSString *appID;
/// 数据收集模式[仅启动时设置生效]
/// YES:数据发送远端并本地存储
/// NO:数据不发送远端,不存储本地
@property (nonatomic, assign) BOOL isTrackingData;
/// 应用版本
@property (nonatomic, copy, nullable) NSString *applicationVersion;
@end
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| appID | NSString | 平台生成的应用唯一ID(长度限制256个字符) |
| isTrackingData | BOOL | 数据收集模式[仅启动时设置生效],YES:数据发送远端并本地存储,NO:数据不发送远端,不存储本地 |
| applicationVersion | NSString | 自定义应用版本(长度限制256个字符) |
-
示例
Objective-C
BRLogConfiguration *config = [[BRLogConfiguration alloc] init];
config.isTrackingData = YES;
config.appID = @"<#AppID#>";
config.applicationVersion = @"1.0.0";Swift
let config = BRLogConfiguration()
config.isTrackingData = true
config.appID = "<#AppID#>"
config.applicationVersion = "1.0.0"
BRLogAgent启动接口
/// 启动 BRLogAgent
+ (void)startWithConfiguration:(BRLogConfiguration *)configuration;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| configuration | BRLogConfiguration | LogAgent配置对象 |
-
示例
Objective-C
BRLogConfiguration *config = [[BRLogConfiguration alloc] init];
// Any configuration...
[BRLogAgent startWithConfiguration:config];Swift
let config = BRLogConfiguration()
// Any configuration...
BRLogAgent.start(with: config)
设置Config地址
私有云客户设置私有部署的config地址时使用。公有云客户请勿调用。该接口需要在调用+ startWithConfiguration:前设置。
/// 设置Config地址(请在BRLogAgent启动之前设置)
+ (void)setConfigAddress:(NSString *)configAddress;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| configAddress | NSString | 私有云config地址 |
-
示例
Objective-C
[BRLogAgent setConfigAddress:@"<#LogConfig地址#>"];Swift
BRLogAgent.setConfigAddress("<#LogConfig地址#>")
二、日志输出接口
自定义日志输出
日志输出使用BRLogger类,可使用BRLoggerBuilder来自定义BRLogger.
- BRLogger类说明
| 属性值 | 类型 | 注释 |
|---|---|---|
| levelThreshold | BRLogLevel | 日志阈值:等于或严重于levelThreshold级别的日志会进行上报和存储 |
| loggerName | NSString | Logger名称(长度限制256个字符) |
| printConsole | BOOL | 是否开启控制台输出 |
| prefix | NSString | 日志前缀,该Logger生成的日志前缀统一 |
日志等级 BRLogLevel: BRLogLevelDebug BRLogLevelInfo BRLogLevelNotice BRLogLevelWarn BRLogLevelError BRLogLevelEmergency
-
示例
Objective-C
//自定义logger配置
BRLoggerBuilder *builder = [[BRLoggerBuilder alloc] init];
builder.levelThreshold = BRLogLevelDebug;//日志级别阈值
builder.loggerName = @"Home Logger";//logger自定义名称
builder.printConsole = NO;//是否在控制台打印
builder.prefix = @"[Bonree]";//日志信息前缀Swift
//自定义logger配置
let builder = BRLoggerBuilder()
builder.levelThreshold = .debug //日志级别阈值
builder.loggerName = "Home Logger" //logger自定义名称
builder.printConsole = true //是否在控制台打印
builder.prefix = "[Bonree]" //日志信息前缀
创建日志输出对象接口(类方法)
+ (BRLogger *)loggerWithBuilder:(BRLoggerBuilder *)builder;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| builder | BRLoggerBuilder | 自定义Logger配置 |
- 返回值说明
| 类型 | 注释 |
|---|---|
| BRLogger | 日志输出对象 |
-
示例
Objective-C
//生成logger传入配置
BRLogger *logger = [BRLogger loggerWithBuilder:builder];Swift
//生成logger传入配置
let logger = BRLogger(builder: builder)
创建日志输出对象接口(实例方法)
- (BRLogger *)initWithBuilder:(BRLoggerBuilder *)builder;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| builder | BRLoggerBuilder | 自定义Logger配置 |
- 返回值说明
| 类型 | 注释 |
|---|---|
| BRLogger | 日志输出对象 |
-
示例
Objective-C
//生成logger传入配置
BRLogger *logger = [[BRLogger alloc] initWithBuilder:builder];Swift
//生成logger传入配置
let logger = BRLogger.init(builder: builder)
Debug输出方法
- (void)debug:(nullable NSString *)message;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| message | NSString | 日志内容 |
- 示例
Objective-C
//Debug日志
[self.logger debug:@"test content"];
Swift
//Debug日志
logger.debug("调试日志")
Debug输出方法(可选错误信息)
- (void)debug:(nullable NSString *)message error:(nullable NSError *)error;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| message | NSString | 日志内容 |
| error | NSError | 错误信息 |
- 示例
Objective-C
//Debug日志
NSError *err = [NSError errorWithDomain:@"test domain" code:-999 userInfo:nil];
[self.logger debug:@"test content" error:err];
Swift
//Debug日志
let error = NSError(domain: "test domain", code: -9999)
logger.debug("调试日志", error: error)
Info输出方法
- (void)info:(nullable NSString *)message;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| message | NSString | 日志内容 |
- 示例
Objective-C
//Debug日志
[self.logger info:@"test content"];
Swift
//Debug日志
logger.info("调试日志")
Info输出方法(可选错误信息)
- (void)info:(nullable NSString *)message error:(nullable NSError *)error;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| message | NSString | 日志内容 |
| error | NSError | 错误信息 |
- 示例
Objective-C
//Info日志
NSError *err = [NSError errorWithDomain:@"test domain" code:-999 userInfo:nil];
[self.logger info:@"test content" error:err];
Swift
//Debug日志
let error = NSError(domain: "test domain", code: -9999)
logger.info("调试日志", error: error)
Warn输出方法
- (void)warn:(nullable NSString *)message;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| message | NSString | 日志内容 |
- 示例
Objective-C
//Debug日志
[self.logger warn:@"test content"];
Swift
//Debug日志
logger.warn("调试日志")
Warn输出方法(可选错误信息)
- (void)warn:(nullable NSString *)message error:(nullable NSError *)error;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| message | NSString | 日志内容 |
| error | NSError | 错误信息 |
- 示例
Objective-C
//Warn日志
NSError *err = [NSError errorWithDomain:@"test domain" code:-999 userInfo:nil];
[self.logger warn:@"test content" error:err];
Swift
//Warn日志
let error = NSError(domain: "test domain", code: -9999)
logger.warn("调试日志", error: error)
Error输出方法
- (void)error:(nullable NSString *)message;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| message | NSString | 日志内容 |
- 示例
Objective-C
//Error日志
[self.logger error:@"test content"];
Swift
//Error日志
logger.error("调试日志")
Error输出方法(可选错误信息)
- (void)error:(nullable NSString *)message error:(nullable NSError *)error;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| message | NSString | 日志内容 |
| error | NSError | 错误信息 |
- 示例
Objective-C
//Error日志
NSError *err = [NSError errorWithDomain:@"test domain" code:-999 userInfo:nil];
[self.logger error:@"test content" error:err];
Swift
//Error日志
let error = NSError(domain: "test domain", code: -9999)
logger.error("调试日志", error: error)
Emergency输出方法
- (void)emergency:(nullable NSString *)message;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| message | NSString | 日志内容 |
- 示例
Objective-C
//Emergency日志
[self.logger emergency:@"test content"];
Swift
//Emergency日志
logger.emergency("调试日志")
Emergency输出方法(可选错误信息)
- (void)emergency:(nullable NSString *)message error:(nullable NSError *)error;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| message | NSString | 日志内容 |
| error | NSError | 错误信息 |
- 示例
Objective-C
//Emergency日志
NSError *err = [NSError errorWithDomain:@"test domain" code:-999 userInfo:nil];
[self.logger emergency:@"test content" error:err];
Swift
//Emergency日志
let error = NSError(domain: "test domain", code: -9999)
logger.emergency("调试日志", error: error)
自定义参数输出方法
- (void)logWithLevel:(BRLogLevel)level
message:(nullable NSString *)message
error:(nullable NSError *)error
attributes:(nullable NSDictionary<NSString *, id> *)attributes;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| level | BRLogLevel | 日志等级 |
| message | NSString | 日志内容 |
| error | NSError | 错误信息 |
| attributes | NSDictionary | 附加属性 |
attributes中value仅支持NSString,NSNumber类型
- 示例
Objective-C
NSError *err = [NSError errorWithDomain:@"test domain" code:-999 userInfo:nil];
[self.logger logWithLevel:BRLogLevelDebug message:@"debug message" error:err attributes:@{@"name": @"test name"}];
Swift
let error = NSError(domain: "test domain", code: -9999)
logger.log(with: .debug, message: "log message", error: error, attributes: ["name": "test name"])
三、自定义功能接口
BRLogAgent支持设置属性,并将属性值附加到日志上便于查看与分析。
通过下面两种方法可将属性添加/删除到BRLogger上,之后由该BRLogger生成的日志都会携带这些属性。
添加属性接口
- (void)addAttributeForKey:(NSString *)key value:(id)value;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| key | NSString | 属性键 |
| value | id | 属性值 |
attributes中value仅支持NSString,NSNumber类型
- 示例
Objective-C
[self.logger addAttributeForKey:@"name" value:@"Bonree"];
Swift
logger.addAttribute(forKey: "name", value: "Bonree")
删除属性接口
- (void)removeAttributeForKey:(NSString *)key;
- 接口说明
| 参数名 | 类型 | 注释 |
|---|---|---|
| key | NSString | 属性键 |
- 示例
Objective-C
[self.logger removeAttributeForKey:@"name"];
Swift
logger.removeAttribute(forKey: "name")