跳到主要内容
版本:3.7.0

Log API

使用Bonree的 log-sdk Log采集库,从您的Android应用程序向Bonree发送日志,并可以使用以下功能:

  • 以 JSON 格式发送日志到Bonree。
  • 向发送的每条日志添加属性(Attribute)。
  • 向发送的日志中添加Java异常。
  • 日志数据优先保存到手机文件,保证日志的完整性。

一、启动配置接口

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

启动配置类的接口通过链式调用方式随BRLog.withAppID("<#AppID#>").start();一同配置,需要在调用start函数之前withAppID之后进行相关配置,可同时配置多项,,start函数后配置无效。

设置config地址

私有化部署用户启动时需要设置私有部署的config地址。

  • 接口说明
BRLog withConfigAddress(java.lang.String configAddress)
参数说明参数限制失败结果
configAddressLog Config地址字符串长度大于0,小于等于2083,否则接口调用失败探针停止
  • 示例
BRLog.withAppID ("<#AppID#>")
.withConfigAddress("<#LogConfig地址#>")
.withOpenTrackingData(true)
.withApplicationVersion("v2.4.0")
.start(this);

设置Log数据上报开关

通过此方法设置日志数据上报开关。

  • 接口说明
withConfigAddress withOpenTrackingData(boolean openTrackingData)
参数说明参数限制失败结果
openTrackingData上报开关数据收集模式[仅启动时设置生效],YES:数据发送远端并本地存储,NO:数据不发送远端,不存储本地探针停止
  • 示例
BRLog.withAppID("<#AppID#>")
.withConfigAddress("<#LogConfig地址#>")
.withOpenTrackingData(true)
.withApplicationVersion("v2.4.0")
.start(this);

设置自定义APP版本

通过此方法设置了自定义设备App版本号,那么SDK将会上报此版本号,不再使用默认获取的版本号。

  • 接口说明
BRLog withAppVersion(java.lang.String version)
参数说明参数限制失败结果
version自定义的版本号字符串长度大于0,小于等于256,否则接口调用失败当次设置无效
  • 示例
BRLog.withAppID("<#AppID#>")
.withConfigAddress("<#LogConfig地址#>")
.withOpenTrackingData(true)
.withApplicationVersion("v2.4.0")
.start(this);

设置日志输出到Logcat的开关

通过此方法设置了生成日志时,是否需要打印到Logcat中。

  • 接口说明
BRLog withLogcatEnable(boolean enable)
参数说明参数限制失败结果
enablelogcat开关字符串长度大于0,小于等于256,否则接口调用失败当次设置无效
  • 示例
BRLog.withAppID("<#AppID#>")
.withConfigAddress("<#LogConfig地址#>")
.withOpenTrackingData(true)
.withApplicationVersion("v2.4.0")
.withLogcatEnable(true)
.start(this);

二、使用日志生成器(Looger)

配置一个日志生成器,用来上报日志数据。

生成器配置类的接口通过链式调用方式随Looger.Builder().build();一同配置,需要在调用build函数之前Builder()之后进行相关配置,可同时配置多项。

设置日志生成器的名称

通过此方法设置日志生成器的名称

  • 接口说明
Builder setLoggerName(java.lang.String name)
参数说明参数限制失败结果
name日志生成器的名称字符串长度大于0,小于等于256截取前256个字符
  • 示例
Logger logger = new Logger.Builder()
.setLoggerName("ViewLogger")
.setLogLevel(LogLevel.DEBUG)
.setPrintLogcat(true)
.setPrefix("[android]")
.addAttribute("deviceId", "9fe5bd60b1e3fd8fd73793c8f565fa0d")
.build();

设置日志生成器的日志优先级

通过此方法设置该生成器的日志优先级,优先级等于或高于所提供级别的日志消息才会采集上报

LogLevel是SDK定义的日志级别

  • 接口说明
Builder setLogLevel(com.bonree.log.LogLevel level)
参数说明参数限制
level日志优先级枚举
  • 示例
Logger logger = new Logger.Builder()
.setLoggerName("ViewLogger")
.setLogLevel(LogLevel.DEBUG)
.setPrintLogcat(true)
.setPrefix("[android]")
.addAttribute("deviceId", "9fe5bd60b1e3fd8fd73793c8f565fa0d")
.build();

设置日志生成器是否输出到Logcat开关

通过此方法设置了生成日志时,是否需要打印到Logcat中.低于日志采集级别也会输出

  • 接口说明
Builder setPrintLogcat(boolean isPrint)
参数说明参数限制
isPrint是否输出boolean
  • 示例
Logger logger = new Logger.Builder()
.setLoggerName("ViewLogger")
.setLogLevel(LogLevel.DEBUG)
.setPrintLogcat(true)
.setPrefix("[android]")
.addAttribute("deviceId", "9fe5bd60b1e3fd8fd73793c8f565fa0d")
.build();

设置日志生成器前缀

通过此方法设置了生成日志时,输出日志增加的前缀

  • 接口说明
Builder setPrefix(String pre)
参数说明参数限制
pre前缀字符串长度大于0,小于等于256
  • 示例
Logger logger = new Logger.Builder()
.setLoggerName("ViewLogger")
.setLogLevel(LogLevel.DEBUG)
.setPrintLogcat(true)
.setPrefix("[android]")
.addAttribute("deviceId", "9fe5bd60b1e3fd8fd73793c8f565fa0d")
.build();

设置日志生成器的日志附加属性

通过此方法设置了生成日志时,采集的每条日志附加属性

  • 接口说明
Builder addAttribute(String key, String value)
参数说明参数限制
key附加属性的名称字符串长度大于0,小于等于256
value附加属性的值字符串长度大于0,小于等于256
  • 示例
Logger logger = new Logger.Builder()
.setLoggerName("ViewLogger")
.setLogLevel(LogLevel.DEBUG)
.setPrintLogcat(true)
.setPrefix("[android]")
.addAttribute("deviceId", "9fe5bd60b1e3fd8fd73793c8f565fa0d")
.build();

三、生成日志

使用以下函数之一将生成一条日志并发送到 Bonree。

输出方法:Verbose

生成一条Verbose级别的日志(带有附加信息),并上报。

  • 接口说明
void verbose(String log)
void verbose(String log, Throwable throwable)
参数说明参数限制
log日志内容
throwable异常信息
  • 示例
try {
logger.verbose("A verbose message");
doSomething();
} catch (Exception e) {
logger.verbose("A verbose message", e);
}

输出方法:Debug

生成一条debug级别的日志(带有附加信息),并上报。

  • 接口说明
void debug(String log)
void debug(String log, Throwable throwable)
参数说明参数限制
log日志内容
throwable异常信息
  • 示例
try {
logger.debug("A debug message");
doSomething();
} catch (Exception e) {
logger.debug("A debug message", e);
}

输出方法:Info

生成一条info级别的日志(带有附加信息),。并上报。

  • 接口说明
void info(String log)
void info(String log, Throwable throwable)
参数说明参数限制
log日志内容
throwable异常信息
  • 示例
try {
logger.info("A info message");
doSomething();
} catch (Exception e) {
logger.info("A info message", e);
}

输出方法:Warn

生成一条warn级别的日志(带有附加信息),并上报。

  • 接口说明
void warn(String log)
void warn(String log, Throwable throwable)
参数说明参数限制
log日志内容
throwable异常信息
  • 示例
try {
logger.warn("A warn message");
doSomething();
} catch (Exception e) {
logger.warn("A warn message", e);
}

输出方法:Error

生成一条error级别的日志(带有附加信息),并上报。

  • 接口说明
void error(String log)
void error(String log, Throwable throwable)
参数说明参数限制
log日志内容
throwable异常信息
  • 示例
try {
logger.error("A error message");
doSomething();
} catch (Exception e) {
logger.error("A error message", e);
}

生成带有附加属性的日志

生成一条带有附加信息的日志。附加属性最多设置64条。

  • 接口说明
void log(LogLevel level, String log, Throwable throwable, Map<String, String> attributes)
参数说明参数限制
level日志级别字符串长度大于0,小于等于256
log日志内容字符串长度大于0,小于等于256
throwable异常信息
attributes附加信息个数小于等于64条
  • 示例
Map<String, String> attributeMap = new HashMap<>();
attributeMap.put("key", "value");
attributeMap.put("url", url);
logger.log(LogLevel.DEBUG, "custom log", null, attributeMap);

日志生成器添加附加属性

设置给日志生成器中,之后该日志生成器生成的每条日志,都会带有该附加属性。该属性也可移除。

  • 接口说明
void addAttribute(String key, String value)
参数说明参数限制
key附加属性的名称字符串长度大于0,小于等于256
value附加属性的值字符串长度大于0,小于等于256
  • 示例
logger.addAttribute("version_code", versionCode);

日志生成器移除附加属性

设置给日志生成器中,移除该日志生成器的附加属性,之后生成的日志中不带有该附加属性。

  • 接口说明
void removeAttributeByKey(String key)
参数说明参数限制
key附加属性的名称字符串长度大于0,小于等于256
  • 示例
logger.removeAttributeByKey("version_code");