目录

使用hilog命令查看日志常见问题

问题现象

场景一:使用hilog命令查看日志时,发现某些日志没有输出,或者日志时有时无。

场景二:在代码中使用了hilog.debug()但控制台看不到DEBUG日志。

场景三:命令行中显示的中文日志出现乱码。

场景四:只想查看某个应用的日志,但日志中混杂了其他应用的信息。

解决方案

[h2]场景一

  1. 当前全局日志级别设置过高,低于该级别的日志不会被打印。
    使用hilog -b D命令开启DEBUG级别日志显示。
    hdc shell hilog -b D
    或者按需设置其他级别。
    hdc shell hilog -b I   # 只显示INFO及以上级别
    hdc shell hilog -b W   # 只显示WARN及以上级别
  2. 日志打印量过大,触发了系统的流控机制。

    查看流控警告:在日志中搜索关键字LOGLIMIT、Slow reader missed、write socket failed。

    临时关闭流控(重启后失效)。

    # 关闭进程级流控
    hdc shell hilog -Q pidoff
    
    # 关闭domain级流控
    hdc shell hilog -Q domainoff
    增大缓冲区:默认hilog buffer大小为256K,可增大到最大16M。
    hdc shell hilog -G 16M
    减少日志量:关闭不必要的DEBUG日志,或只开启特定domain的日志。
    # 只显示指定domain的INFO级别日志
    hdc shell hilog -b I -D d003200

[h2]场景二

  1. 开启DEBUG开关。
    hdc shell hilog -b D
  2. 检查代码中的日志级别:确保调用hilog.isLoggable()检查日志是否可打印。
  3. 确认应用版本:DEBUG级别日志在release版本中默认不打印,需要在调试版本或开启调试开关。

[h2]场景三

保存为.bat文件,每次通过该脚本启动命令行。

[h2]场景四