使用
组件介绍
TMFXLog 染色日志组件提供了远程拉取终端日志服务,支持远程更新配置,终端手动上传日志等能力 。
开启染色日志
开启染色日志写入缓冲。开启后,调用写入接口才能生效。
接口定义
- (void)open;
该接口要求在 -application:didFinishLaunchingWithOptions:
中调用。config 配置的 allowsTraceOpen 默认为 NO,表示不手动打开打点日志,调用 open 会提示 open failed。
调用示例
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ....
/*
@note 默认不手动打开打点日志,建议通过云指令配置控制染色日志的开启
*/
[[TMFXLogger defaultLogger] open];
// ...
return YES;
}
写入染色日志
提供日志写入能力。
接口定义
#define XLOG_DEBUG(module, format, ...)
#define XLOG_INFO(module, format, ...)
#define XLOG_WARNING(module, format, ...)
#define XLOG_ERROR(module, format, ...)
SDK 预定义了四种等级的日志写入宏,满足不同级别的写入需要。
调用示例
XLOG_INFO("TestDemo", @"%s", "open");
关闭染色日志
关闭染色日志写入缓冲。关闭之后,后续调用写入接口均无效。
接口定义
- (void)close;
该接口要求在 -applicationWillTerminate:
中调用。
调用示例
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
[[TMFXLogger defaultLogger] close];
}
染色日志加密和压缩
染色日志默认只压缩不加密,如果需要加密的话,需要设置公钥。公钥生成以及加解密操作可参考 加密指引 进行配置。
接口定义
- (void)setPublicKey:(NSString *)publicKey
该接口要求在 -open
之前调用。
调用示例
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/**
@note 如果需要对日志文件进行加密,需要设置公钥。此处的公钥和私钥仅用作测试,实际请参考 https://github.com/Tencent/mars/wiki/Xlog-加密使用指引 配置
@note 公钥:a6c20f0c2988446beb3e2fa30afa352884ff7256ae4518820bc1e3f3d921e4878a130fd64df55fee6b411af5ed979646e0d720301dd3c7799fdb2f158868cdc9
@note 私钥:8e3a33ac7a27dea2e2339aaf35d88680d6a25daa68a0b21f0896eb78ebe4b65b
*/
[[TMFXLogger defaultLogger] setPublicKey:@"a6c20f0c2988446beb3e2fa30afa352884ff7256ae4518820bc1e3f3d921e4878a130fd64df55fee6b411af5ed979646e0d720301dd3c7799fdb2f158868cdc9"];
[[TMFXLogger defaultLogger] open];
// ...
return YES;
}
加密指引 注意事项:
- 需要有 mars 的 master 源码分支,可以使用 git 拉取或直接下载 zip 文件。
- pyelliptic-1.5.7 执行 install 之后,需要打开 pyelliptic-1.5.7,将其根目录下的所有文件拷贝至 mars-master/mars/log/crypt 目录下。
- 提示"File "decode_xxx_file.py", line 11, in
import zstandard as zstd" 失败,可尝试修改decode_mars_crypt_log_file.py 或 decode_mars_nocrypt_log_file.py,注释掉“import zstandard as zstd“后重新执行。 - decode_mars_crypt_log_file.py 的【PUB_KEY】参数可为“”。