跳到主要内容
版本:3.7.0

Log API

一、启动配置接口

AppIDLogConfig地址请于平台上获取或联系技术支持。

BRLogConfiguration配置

@interface BRLogConfiguration : NSObject

/// AppID
@property (nonatomic, copy) NSString *appID;

/// 数据收集模式[仅启动时设置生效]
/// YES:数据发送远端并本地存储
/// NO:数据不发送远端,不存储本地
@property (nonatomic, assign) BOOL isTrackingData;

/// 应用版本
@property (nonatomic, copy, nullable) NSString *applicationVersion;

@end
  • 接口说明
参数名类型注释
appIDNSString平台生成的应用唯一ID(长度限制256个字符)
isTrackingDataBOOL数据收集模式[仅启动时设置生效],YES:数据发送远端并本地存储,NO:数据不发送远端,不存储本地
applicationVersionNSString自定义应用版本(长度限制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;
  • 接口说明
参数名类型注释
configurationBRLogConfigurationLogAgent配置对象
  • 示例

    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;
  • 接口说明
参数名类型注释
configAddressNSString私有云config地址
  • 示例

    Objective-C

    [BRLogAgent setConfigAddress:@"<#LogConfig地址#>"];

    Swift

    BRLogAgent.setConfigAddress("<#LogConfig地址#>")

二、日志输出接口

自定义日志输出

日志输出使用BRLogger类,可使用BRLoggerBuilder来自定义BRLogger.

  • BRLogger类说明
属性值类型注释
levelThresholdBRLogLevel日志阈值:等于或严重于levelThreshold级别的日志会进行上报和存储
loggerNameNSStringLogger名称(长度限制256个字符)
printConsoleBOOL是否开启控制台输出
prefixNSString日志前缀,该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;
  • 接口说明
参数名类型注释
builderBRLoggerBuilder自定义Logger配置
  • 返回值说明
类型注释
BRLogger日志输出对象
  • 示例

    Objective-C

    //生成logger传入配置
    BRLogger *logger = [BRLogger loggerWithBuilder:builder];

    Swift

    //生成logger传入配置
    let logger = BRLogger(builder: builder)

创建日志输出对象接口(实例方法)

- (BRLogger *)initWithBuilder:(BRLoggerBuilder *)builder;
  • 接口说明
参数名类型注释
builderBRLoggerBuilder自定义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;
  • 接口说明
参数名类型注释
messageNSString日志内容
  • 示例

Objective-C

//Debug日志
[self.logger debug:@"test content"];

Swift

//Debug日志
logger.debug("调试日志")

Debug输出方法(可选错误信息)

- (void)debug:(nullable NSString *)message error:(nullable NSError *)error;
  • 接口说明
参数名类型注释
messageNSString日志内容
errorNSError错误信息
  • 示例

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;
  • 接口说明
参数名类型注释
messageNSString日志内容
  • 示例

Objective-C

//Debug日志
[self.logger info:@"test content"];

Swift

//Debug日志
logger.info("调试日志")

Info输出方法(可选错误信息)

- (void)info:(nullable NSString *)message error:(nullable NSError *)error;
  • 接口说明
参数名类型注释
messageNSString日志内容
errorNSError错误信息
  • 示例

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;
  • 接口说明
参数名类型注释
messageNSString日志内容
  • 示例

Objective-C

//Debug日志
[self.logger warn:@"test content"];

Swift

//Debug日志
logger.warn("调试日志")

Warn输出方法(可选错误信息)

- (void)warn:(nullable NSString *)message error:(nullable NSError *)error;
  • 接口说明
参数名类型注释
messageNSString日志内容
errorNSError错误信息
  • 示例

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;
  • 接口说明
参数名类型注释
messageNSString日志内容
  • 示例

Objective-C

//Error日志
[self.logger error:@"test content"];

Swift

//Error日志
logger.error("调试日志")

Error输出方法(可选错误信息)

- (void)error:(nullable NSString *)message error:(nullable NSError *)error;
  • 接口说明
参数名类型注释
messageNSString日志内容
errorNSError错误信息
  • 示例

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;
  • 接口说明
参数名类型注释
messageNSString日志内容
  • 示例

Objective-C

//Emergency日志
[self.logger emergency:@"test content"];

Swift

//Emergency日志
logger.emergency("调试日志")

Emergency输出方法(可选错误信息)

- (void)emergency:(nullable NSString *)message error:(nullable NSError *)error;
  • 接口说明
参数名类型注释
messageNSString日志内容
errorNSError错误信息
  • 示例

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;
  • 接口说明
参数名类型注释
levelBRLogLevel日志等级
messageNSString日志内容
errorNSError错误信息
attributesNSDictionary附加属性

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;
  • 接口说明
参数名类型注释
keyNSString属性键
valueid属性值

attributes中value仅支持NSString,NSNumber类型

  • 示例

Objective-C

[self.logger addAttributeForKey:@"name" value:@"Bonree"];

Swift

logger.addAttribute(forKey: "name", value: "Bonree")

删除属性接口

- (void)removeAttributeForKey:(NSString *)key;
  • 接口说明
参数名类型注释
keyNSString属性键
  • 示例

Objective-C

[self.logger removeAttributeForKey:@"name"];

Swift

logger.removeAttribute(forKey: "name")