本文档介绍移动监控 Unity SDK 提供的崩溃分析 API,包括自定义日志、自定义异常。
1. 自定义日志
自定义日志会跟随异常信息一起上报。
接口定义
namespace Alicloud.Apm.CrashAnalysis
{
public static class CrashAnalysis
{
public static void Log(string message) {}
}
}
自定义日志参数说明
参数 | 类型 | 是否必填 | 长度范围 | 说明 |
message | string | 是 | 1~64000 | 自定义日志消息 |
代码示例
using Alicloud.Apm.CrashAnalysis;
// 以下是代码示例
CrashAnalysis.Log("Your custom message");
2. 自定义异常对象
接口定义
namespace Alicloud.Apm.CrashAnalysis
{
public static class CrashAnalysis
{
public static void RecordException(Exception exception) {}
}
}
自定义异常参数说明
参数 | 类型 | 是否必填 | 说明 |
exception | System.Exception | 是 | 自定义 C# 异常 |
代码示例
using Alicloud.Apm.CrashAnalysis;
// 以下是代码示例
CrashAnalysis.RecordException(new InvalidOperationException("Your exception message"));
3. 自定义异常模型
接口定义
namespace Alicloud.Apm.CrashAnalysis
{
public static class CrashAnalysis
{
public static void RecordExceptionModel(ExceptionModel exceptionModel) {}
}
public enum SourceLanguage
{
Unknown = 0,
CSharp,
Lua
}
}
ExceptionModel参数说明
参数 | 类型 | 是否必填 | 说明 |
Name | string | 是 | 异常名称 |
Reason | string | 是 | 异常原因 |
Language | enum | 否 | 异常来源的语言 |
StackTrace | IList<StackFrame> | 否 | 堆栈列表:从顶部开始倒序 |
StackFrame参数说明
参数 | 类型 | 是否必填 | 说明 |
Symbol | string | 是 | 符号,一般是函数/方法名 |
File | string | 否 | 文件名 |
Line | int | 否 | 行号 |
Library | string | 否 | 库 |
代码示例
using Alicloud.Apm.CrashAnalysis;
// 以下是代码示例
var model = new ExceptionModel("LuaRuntimeError", "attempt to index a nil value", SourceLanguage.Lua);
model.StackTrace.Add(StackFrame.FromSymbol("main", "script.lua", 15, "lua"));
model.StackTrace.Add(StackFrame.FromSymbol("doSomething", "utils.lua", 8, "lua"));
CrashAnalysis.RecordExceptionModel(model);
4. 设置异常上报的 Unity 日志级别
获取或设置异常上报的 Unity 最低日志级别
接口定义
namespace Alicloud.Apm.CrashAnalysis
{
public static class CrashAnalysisConfiguration
{
public static LogType ReportLogLevel {}
}
}
参数说明
参数 | 类型 | 是否必填 | 说明 |
ReportLogLevel | enum UnityEngine.LogType | 是 | Unity 日志级别,SDK通过注册
|
代码示例
using Alicloud.Apm.CrashAnalysis;
// 以下是代码示例
// 设置异常上报的 Unity 日志级别
CrashAnalysisConfiguration.ReportLogLevel = UnityEngine.LogType.Exception;
// 获取异常上报的 Unity 日志级别
UnityEngine.LogType reportLogLevel = CrashAnalysisConfiguration.ReportLogLevel;
5. 设置异常处理策略
获取或设置异常处理策略
接口定义
namespace Alicloud.Apm.CrashAnalysis
{
public static class CrashAnalysisConfiguration
{
public static ExceptionPolicy ExceptionMode {}
}
public enum ExceptionPolicy
{
Disabled = 0,
Record = 1,
ReportImmediately = 2,
ReportImmediatelyAndQuitApplication = 3
}
}
参数说明
参数 | 类型 | 是否必填 | 说明 |
ExceptionMode | enum Alicloud.Apm.CrashAnalysis.ExceptionPolicy | 是 | 异常上报模式,对自定义异常、Unity 日志和 CLR 捕获的异常均有效,默认模式是立即上报(
|
代码示例
using Alicloud.Apm.CrashAnalysis;
// 以下是代码示例
// 设置异常处理策略
CrashAnalysisConfiguration.ExceptionMode = ExceptionPolicy.ReportImmediately;
// 获取异常处理策略
ExceptionPolicy exceptionPolicy = CrashAnalysisConfiguration.ExceptionMode;