进程超限只对应用类型(LOG_APP)日志生效,domain超限只对系统类型(LOG_CORE, LOG_INIT)日志生效
如果看到类似日志,说明该日志打印超标(10KB/s)被超限了:


LOGLIMIT : ==LOGS OVER PROC QUOTA, 2849 DROPPED ==


调试过程中可以通过:
hilog –Q pidoff  关闭进程超限
hilog -Q domainoff  关闭domain超限


但如果系统中日志量过大(当前整改后已有很大改善),仍然会在socket写入时直接失败导致日志丢弃,可以通过hilog –b X来关闭所有领域的日志打印(小部分特殊日志无法关闭),然后通过hilog –b <level> -D <domain>来打开自己领域的日志
有低概率看到类似这样的日志:


 00000/HiLog: ========Slow reader missed log lines: 120


这是因为日志服务缓存满了要清理部分空间出来,但客户端(hilog命令或落盘任务)还没来得及读到被清理的日志,本质上仍然是系统里日志打印频率太高了,这种可以通过hilog –G <size>来增加缓存大小(默认大小256K, 一般调整到2M就足够了)
总结,应对日志丢失的情况,通过如下几步基本都可以解决:


应用开发者: hilog –b X; hilog –b <level> -D <domain>; hilog –Q pidoff;
系统开发者: hilog –b X; hilog –b <level> -D <domain>; hilog –Q domainoff; hilog –G 2M

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐