HarmonyOS 鸿蒙Next怎么屏蔽无用日志(ArkTS)
HarmonyOS 鸿蒙Next怎么屏蔽无用日志(ArkTS) 新建一个项目,啥也没添加,直接运行,log日志下面就有一大堆各种类型的(Debug/Error/Info/Warning)日志一直在输出,这些无关的日志能不能屏蔽掉?即使输出日志,也不应该一直输出呀? 并且这样输出感觉很耗电脑性能!对于开发者来说,只想开到自己输出的日志以及必要的系统日志。希望华为继续优化吧。
更多关于HarmonyOS 鸿蒙Next怎么屏蔽无用日志(ArkTS)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
个人经验:
1、理解Log的级别,EcoDev Studio的日志是有改进的,Error, Warn, Info, Debug 等不同级别的日志是用不同颜色标注,很容易区分;记一下什么级别什么颜色,总共没几个:)
2、Log窗口上方有几个下拉框可以进行初步日志过滤,过滤条件为:
-
设备: 针对有多设备连接的情况,如果就一个模拟器或真机,则自动选中;
-
应用:针对目标设备上有多个开发应用在运行情况,可过滤系统日志和应用相关日志;你上面的贴图中就是没有过滤这一层,将系统日志和应用日志全部显示了,当然混乱了:)
-
日志级别:可选择查看 1 中所说的不同日志级别的日志,下拉框中越上面的级别日志越多,因为上面的级别包含下面的级别的日志;如果要定位错误,选择Error,如果要看全部,选择 Verbose,其它可自行尝试;
-
关键字符串过滤,在级别过滤框右侧,可自行设置关键字,配合HiLog中使用某些自定义关键字可只显示你自己的代码中的日志;很多文档中的示例代码用的console.xxx()对于日志查看不是很方便;华为官方的应用示例中有个封装好的Logger类比较有用,可复制到项目中再自行优化一下,其中为日志准备了日志标签项,个人常用如下,其中的tag中含有方法名及==字符串,在Log窗口中的关键字过滤框中输入==就基本过滤掉无关的多数日志。
function test(n: number): string {
let tag: string = 'test()==';
Logger.info(tag, `-------------------- enter`);
}
3、另外Log窗口还有搜索功能,Ctrl+F,可在显示大量日志时快速定位感兴趣的内容;
这些足够用了。
更多关于HarmonyOS 鸿蒙Next怎么屏蔽无用日志(ArkTS)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
使用我知道,我想表达的是:
-
没必要一直重复输出日志;
-
我只是新建一个项目,啥也没添加,模拟器是新建的,无关的系统日志没必要输出;
-
开发者更多关注的是自己输出的日志和必要的系统日志。
开发不同应用的人对系统日志的需求不同的,工具不能替你进行筛选;而运行中的模拟器或真机本身就是大循环套小循环保持活跃,自然就会有新日志不断产生;
无论模拟器新建与否,只要是个系统在跑,日志就不断;有关无关你自己决定,工具只是全部提供;不想要点几下过滤就眼不见心不烦了:)
过滤、过滤、过滤 + 个性标识日志过滤;还要啥?要不你举个合你意的IDE的日志样板给大家看看:)
我之前是做iOS开发的,用的是Xcode,日志就很干净,只输出自己的和必要的(错误或警告)信息,并且启动就可以直接看到对应的输出信息(如果有log)。DevEco还需要点击切换到日志上去查看(默认的是Run的命令信息)。也可能我对这个不是太习惯,总感觉没必要一直输出信息debug/info这种级别的系统log日志,这种开发者真的关注多吗?即使需要,也应该是单独的一个模块中输出,不应和用户日志在一块显示。
日志显示的设置那里,有一个精简模式,开启后不显示底层日志,只显示主动打印的。
Log窗口上面有个Setting,你可以设置默认过滤,也可设置显示的日志级别,不用每次打开点击过滤,应该可满足你的要求:)
在HarmonyOS鸿蒙Next中,屏蔽无用日志可以通过配置日志级别来实现。ArkTS提供了Log
模块,支持不同级别的日志输出,包括DEBUG
、INFO
、WARN
、ERROR
和FATAL
。通过设置日志级别,可以过滤掉低于该级别的日志信息。
-
设置全局日志级别:在应用的入口文件(如
entry/src/main/ets/entryability/EntryAbility.ts
)中,使用Log.setLogLevel()
方法设置全局日志级别。例如,设置为Log.INFO
级别,则DEBUG
级别的日志将不会输出。import Log from '[@ohos](/user/ohos).log'; Log.setLogLevel(Log.INFO);
-
局部日志级别设置:在特定模块或代码段中,可以通过
Log.isLoggable()
方法判断当前日志级别是否满足输出条件,从而控制日志输出。if (Log.isLoggable(Log.DEBUG)) { Log.debug('This is a debug message'); }
-
使用日志标签:通过为日志添加标签,可以在日志输出时进行更细粒度的控制。例如,使用
Log.tag()
方法为日志添加标签,然后在日志配置中根据标签过滤日志。Log.tag('MyTag').debug('This is a debug message with tag');
-
配置文件控制:在
config.json
中,可以通过logLevel
字段配置应用的日志级别。例如,设置为info
级别,则debug
级别的日志将不会输出。{ "app": { "logLevel": "info" } }
通过以上方法,可以有效屏蔽HarmonyOS鸿蒙Next中的无用日志,减少日志输出的冗余信息。
在HarmonyOS鸿蒙Next中,屏蔽无用日志可以通过以下步骤实现:
-
使用日志级别控制:在ArkTS中,使用
console
对象的不同方法(如console.debug
、console.info
、console.warn
、console.error
)来控制日志输出。通过设置日志级别,可以屏蔽低级别的日志。 -
配置日志过滤器:在开发环境中,可以通过配置文件或代码设置日志过滤器,只输出特定级别或模块的日志。
-
使用条件编译:在发布版本中,通过条件编译移除调试日志,确保生产环境中不输出无用日志。
通过这些方法,可以有效屏蔽无用日志,提升应用性能。