栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

打印日志消息到内核

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

打印日志消息到内核

打印日志消息到内核

在Android java层面,经常会需要比较下开机时序,或是要知道该进程是开机多长时间执行,但由于内核kernel 日志并没有打印相应的时间戳,故此时就需要打印日志到内核,包括消息、时间戳、进程pid等。

打开/dev/kmsg的权限

需要打开/dev/kmsg的权限,重新生成并替换boot.img

路径:/system/core/rootdir/init.rc

on init

     sysclktz 0

     loglevel 3

+   

+    #modify /dev/kmsg

+    chmod 666 /dev/kmsg

示例1:打印数值到内核

#include

......

char buf[256];

sprintf(buf,"echo "%d" > /dev/kmsg", 2333);

system(buf);

示例2:打印时间戳到内核

#include

#include

time_t timep;

struct tm *p;

time (&timep);

p=gmtime(&timep);

char buf[256];

pid_t pid = getpid();

sprintf(buf,"echo "kejd pid=%d,year=%d,mon=%d,day=%d,hour=%d,min=%d,sec=%d" > /dev/kmsg", pid,1900+p->tm_year, 1+p->tm_mon, p->tm_mday, 8+p->tm_hour, p->tm_min, p->tm_sec);

system(buf);

示例:打印进程号到内核

#include

......

pid_t pid = getpid();

sprintf(buf,"echo "kejd pid=%d" > /dev/kmsg", pid);

其它方式的打印

写法1:system("echo test123 > /dev/kmsg");

写法2:klog_writev(7,"testkernel log");

写法3:BOOTINFO("testEntered dsi_mni_init mainn");

写法4:

do {

    KLOG_ERROR("charger", "kejd dsi_mni_init debug: dsi_mni_init: ENTRY");

} while (0);

写法5:

 system("echo 123 > /dev/__kmsg__");

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/752155.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号