首页 > 编程知识 正文

log是什么文件夹可以删除吗,log信息采集能删除吗

时间:2023-05-03 23:03:44 阅读:275709 作者:3567

进程Log过多,超过上限,导致log被删除,类似:

chatty  : uid=1000(system) MountService expire 168 lines


logd  删除log的判断依据为:

    查看代码,logd 的判断是否删除的依据为:

    void LogBuffer::maybePrune(log_id_t id) {
        size_t sizes = stats.sizes(id);        //获取指定buffer ,在内存中log的总大小,                             
        unsigned long maxSize = log_buffer_size(id);   //获取此 buffer的先限制大小。
        if (sizes > maxSize) {
            。。。。。。
        if (pruneRows <= minElements) {
            pruneRows = minElements;
        }
        if (pruneRows > 256) {
            pruneRows = 256;
        }
            prune(id, pruneRows);
        }
    }
    Logd 获取当前buffer缓存的log大小,与其设定的 buffer相比,如果sizes >maxSize 则进行删除操作, 删除当前log个数的1/10 ~~256 个,删除log的判断依据maxSize, 是在 LogBuffer::init()方法中进行设置的,默认大小为 LOG_BUFFER_SIZE (256 * 1024)

在android 原生中扩大 log buffer 的方法有两种:

        1、通过adb 命令,动态修改指定的bufer 大小如图:
    android  默认7个buffer 的值都为:256*1024

       

      通过运行命令 :adb logcat  -b buffer_name  -Gsize,   来扩大指定 buffer 的值,例如:

           

      2、 通过修改build.prop ,也可以达到修改buffer 大小的目的,但是需要 重启生效。


建议:

   可以将命令 整合到一个工具apk 中,以列表的方式展现所有buffer,手工去调正 指定buffer的大小。



备注:

buffer 的有效值位于:

LOG_BUFFER_MIN_SIZE (64 * 1024UL)  ~~~~ LOG_BUFFER_MAX_SIZE (256 * 1024 * 1024UL)

如果设置的值,大于或小于有效值,那么设置不生效。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。