日志被限流,关闭限流也不生效,导致日志丢失?

hdc shell hilog -Q domainoff
hdc shell hilog -Q pidoff
hdc shell hilog -G 2M

使用以上命令关闭限流后,依然是限流状态。

报错截图:

zh-cn_image_0000001875647517.png

正常情况下应打印0-100。

阅读 271
1 个回答

根因是底层日志socket通信丢失,将以下内容保存为hilogd.cfg文件:

{
  "jobs": [
    {
      "name": "init",
      "cmds": [
        "mkdir /data/log/ 0775 system log",
        "mkdir /data/log/dict/ 0755 logd log",
        "mkdir /data/log/hilog/ 0755 logd log",
        "start hilogd"
      ]
    },
    {
      "name": "services:hilogd",
      "cmds": [
        "write /proc/sys/net/unix/max_dgram_qlen 600"
      ]
    }
  ],
  "services": [
    {
      "name": "hilogd",
      "path": [
        "/system/bin/hilogd"
      ],
      "disabled": 1,
      "uid": "logd",
      "gid": [
        "log",
        "system",
        "readproc",
        "shell"
      ],
      "sandbox": 0,
      "file": [
        "/dev/kmsg rd 0640 root root"
      ],
      "socket": [
        {
          "name": "hilogInput",
          "family": "AF_UNIX",
          "type": "SOCK_DGRAM",
          "protocol": "default",
          "permissions": "0222",
          "uid": "logd",
          "gid": "log",
          "option": [
            "SOCKET_OPTION_PASSCRED"
          ]
        },
        {
          "name": "hilogOutput",
          "family": "AF_UNIX",
          "type": "SOCK_SEQPACKET",
          "protocol": "default",
          "permissions": "0666",
          "uid": "logd",
          "gid": "log",
          "option": [
            "SOCKET_OPTION_PASSCRED"
          ]
        },
        {
          "name": "hilogControl",
          "family": "AF_UNIX",
          "type": "SOCK_SEQPACKET",
          "protocol": "default",
          "permissions": "0660",
          "uid": "logd",
          "gid": "log",
          "option": [
          ]
        }
      ],
      "start-mode": "condition",
      "secon": "u:r:hilogd:s0"
    }
  ]
}

再执行以下命令将其推入手机重启:

hdc shell "mount -o remount,rw /"
hdc file send hilogd.cfg /system/etc/init/
hdc shell reboot

打印日志频率过快还是会丢失。使用以下命令来减少日志打印:

关闭所有日志
hdc shell hilog -b X
打开debug级别的你的tag的日志
hdc shell hilog -b D -T 你的tag(见下方截图)
关闭限流、调整缓存
hdc shell hilog -Q domainoff
hdc shell hilog -Q pidoff
hdc shell  hilog -G 2M
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进