写点什么

ArkUI-X 框架 LogInterface 使用指南

作者:龙儿筝
  • 2025-06-15
    湖北
  • 本文字数:1267 字

    阅读完需:约 4 分钟

ArkUI-X 框架支持日志拦截能力,Android 侧提供原生接口,用于注入 LogInterface 接口,框架日志及 ts 日志通过该接口输出,本文的核心内容是介绍如何在 Android 平台上有效利用 ArkUI-X 框架的 LogInterface 拦截日志。

Android 平台创建 ArkUI-X 框架 LogInterface

在 Android 平台创建 ArkUI-X 框架 LogInterface 需要实现 ILogger 接口,实现声明接口完整示例如下:


//LogInterface.javaimport ohos.ace.adapter.ILogger;public class LogInterface implements ILogger {    @Override    public boolean isDebuggable() {        return false;    }
@Override public void d(String tag, String msg) { //对日志信息处理,落盘或输出 }
@Override public void i(String tag, String msg) { //对日志信息处理,落盘或输出 }
@Override public void w(String tag, String msg) { //对日志信息处理,落盘或输出 }
@Override public void e(String tag, String msg) { //对日志信息处理,落盘或输出 }
@Override public void f(String tag, String msg) { //对日志信息处理,落盘或输出 }
@Override public void jankLog(int tag, String msg) { }}
复制代码

设置 ArkUI-X 框架 LogInterface 以及日志拦截等级

在需要控制 ArkUI-X 框架日志及 TypeScript 日志的输出时,可以利用 StageApplicationDelegate 类中 setLogInterface 方法来注入 LogInterface,注入成功,框架和 TypeScript 的 ERROR 和 FATAL 日志通过提供的这个实例的方法输出,注入失败,执行日志输出原逻辑。


​ 设置日志拦截等级需使用 StageApplicationDelegate 类中 setLogLevel 方法,设置日志拦截等级成功,日志等级优先级低于该日志拦截等级时,日志不被输出。


​ 通过 setLogInterface 注入 LogInterface 时,默认仅拦截并处理 ERROR 和 FATAL 等级日志;通过 setLogLevel 可降低日志拦截等级以输出更详细日志,但需特别注意:若将日志等级开放至 ERROR 以下(如 WARN/INFO/DEBUG),存在应用崩溃的风险。


注意:开发者使用时注册,必须位于调用 MyApplication 超类的 onCreate()方法之后


设置 ArkUI-X 框架 LogInterface 以及日志拦截等级,完整示例如下:


// MyApplication.javaimport android.util.Log;import ohos.ace.adapter.ILogger;import ohos.stage.ability.adapter.StageApplication;import ohos.stage.ability.adapter.StageApplicationDelegate;
public class MyApplication extends StageApplication { private StageApplicationDelegate appDelegate = null; @Override public void onCreate() { super.onCreate();//在此onCreate后注册 LogInterface logInterface = new LogInterface(); //创建实例 this.appDelegate = new StageApplicationDelegate(); //创建appDelegate this.appDelegate.setLogInterface(logInterface); //设置LogInterface this.appDelegate.setLogLevel(ILogger.LOG_DEBUG);//设置日志拦截等级 }}
复制代码


发布于: 刚刚阅读数: 2
用户头像

龙儿筝

关注

还未添加个人签名 2024-10-27 加入

还未添加个人简介

评论

发布
暂无评论
ArkUI-X框架LogInterface使用指南_龙儿筝_InfoQ写作社区