<Linux> Kernel Log

Kernel Log & Android Log 阅读详情

Kernel Log, 可找到定义, 

kernel/printk.c:


/* printk's without a loglevel use this.. */
#define DEFAULT_MESSAGE_LOGLEVEL CONFIG_DEFAULT_MESSAGE_LOGLEVEL

/* We show everything that is MORE important than this.. */
#define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */
#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */

int console_printk[4] = {
	DEFAULT_CONSOLE_LOGLEVEL,	/* console_loglevel */
	DEFAULT_MESSAGE_LOGLEVEL,	/* default_message_loglevel */
	MINIMUM_CONSOLE_LOGLEVEL,	/* minimum_console_loglevel */
	DEFAULT_CONSOLE_LOGLEVEL,	/* default_console_loglevel */
};

include/linux/kern_level.h:

#define KERN_EMERG	KERN_SOH "0"	/* system is unusable */
#define KERN_ALERT	KERN_SOH "1"	/* action must be taken immediately */
#define KERN_CRIT	KERN_SOH "2"	/* critical conditions */
#define KERN_ERR	KERN_SOH "3"	/* error conditions */
#define KERN_WARNING	KERN_SOH "4"	/* warning conditions */
#define KERN_NOTICE	KERN_SOH "5"	/* normal but significant condition */
#define KERN_INFO	KERN_SOH "6"	/* informational */
#define KERN_DEBUG	KERN_SOH "7"	/* debug-level messages */


(1) config
在.config中定义 CONFIG_DEFAULT_MESSAGE_LOGLEVEL(0-7)

(2) debug

# cat /proc/sys/kernel/printk

7       4       1      7

-> 对应上面console_printk数组中的值

#echo 8 > /proc/sys/kernel/printk

-> 显示所有LOG, 即高于KERN_DEBUG的.

(3) printk log添加LOGLEVEL

printk(KERN_INFO "...")

printk(KERN_DEBUG "...")


Android system自带 通过kernel 输出上层log的方法 开机的时候如果ADB还没起来,非kernel 层想要输出log ,可以通过写入kmsg的方法。把上层的log 通过kernel输出。 android 已经提供了的库 代码比较简单,位置 : Klog.c (system\core\libcutils)       Klog.h (system\core\include\cutils)       主要函数: void kl 阅读详情

相关推荐

android log丢失(三)动态切换logd机制和kernel机制

之前我们分析了如何修改版本使log机制变成kernel的log机制。这篇博客我们继续修改可以动态切换,这样方便平时log丢失时调试。   我们先来看liblog库的编译mk文件,这个文件中主要修改了对使用使用logd 使用不同文件进行编译这块做了修改,增加了log_write_common.c 和log_read_common.c两个通用文件。 # # Copyright (C) 2008...

kc58236582的博客 3729

linux 查看kernel log,<Linux> Kernel Log

Kernel Log, 可找到定义,kernel/printk.c:/* printk's without a loglevel use this.. */#define DEFAULT_MESSAGE_LOGLEVEL CONFIG_DEFAULT_MESSAGE_LOGLEVEL/* We show everything that is MORE important than this.. *...

weixin_28715953的博客 1148

电蚊拍为什么能秒杀蚊子?深入解析两种四倍压整流电路设计差异

本文深入解析电蚊拍秒杀蚊子的核心原理——四倍压整流电路设计,对比对称式与级联式两种方案的性能差异。通过详细电路分析、实测数据对比和选型建议,揭示高压电路设计的关键技术要点,为电子爱好者和工程师提供实用参考。

rust6ferris的博客 749

Linux kernel log与调试

一、内核日志基本框架 1.内核日志通过printk函数实现的,它与用户空间对应的函数printf具有同样的作用, 内核会创建一个__log_buf环形缓冲区保存日志信息,定义在[kernel/printk/printk.c] static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN); 用户态可以通过Syslog相关的系统调用或者/proc文件以及/dev/kmsg设备节点来查看_log_buf的信息,这些操作都是通过do_syslo...

hui_zh的博客 5915

vivado:差分信号和单端信号 的相互转换 IBUFDS OBUFDS

FPGA能处理的都是单端信号,但有些输入信号是差分的,这时候就需要把差分信号转为单端信号。

qq_52137732的博客 1万+

融合ZILN损失与深度学习的LTV预测:从概率分布到精准营销决策

本文探讨了融合ZILN损失与深度学习的LTV预测方法,通过深度概率模型精准预测用户生命周期价值(LTV),优化营销决策。文章详细解析了ZILN损失函数的优势、模型架构设计要点及工程化落地实践,帮助企业在预算分配、用户分层等场景实现数据驱动的精准营销。

weixin_29093169的博客 308

linux kernel log 整理

熟悉linux内核,或者看过linux内核源码的同学就会知道,在内核中,有一个类似于c语言的输出函数,叫做printk,使用它,我们可以打印各种我们想要的信息,比如内核当前的运行状态,又或者是我们自己的调试日志等,非常方便。 那当我们调用printk函数后,这些输出的信息到哪里去了呢?我们又如何在linux下的用户态,查看这些信息呢? 为了解答这些疑问,我画了一张printk全景图,放在了文章开始的部分,这张图既包含了printk在内核态的实现,又包含了其输出的信息在用户态如何查看。 我们可...

魏言华的博客 4676

使用PLINK做GWAS(2)

利用PLINK对单基因控制的性状进行定位,之前一篇文章粗滤的记录了一下使用PLINK的命令,本次博客主要记录一下如何根据SNP芯片的数据制作PLINK的格式,以及分析的步骤,最后数据的可视化。 首先,有的公司给的新片的数据就是一个excel表格,列表示的是样品,行表示的是基因型,基因型用ATCG构成,当然有的基因型是用数字0或者1表示的。下面我拿到的一个数据是15个样品构成的基因型,有13个样品是突变体,2个样品是野生型。 格式如下: 第二步:将此基因型存成csv文件,使用R进行读取,在R中制作pl

samhuairen的专栏 2921

linux kernel内核、驱动日志调试方法(一)

对于正在运行的内核,所谓的core文件就是这个内核在内存中的核心映像,即/proc/kcore。proc文件系统是一种无存储的文件系统,当读其中的文件时,其内容由文件关联的读函数动态生成,当写文件时,文件所关联的写函数被调用。printk是打印内核消息的函数,printk通过附加不同日志级别(loglevel)或者说消息优先级,让printk对消息进行分类,这是与printf最大的区别,在编译时,日志级别宏会被展开为一个字符串,然后与消息本文拼接在一起,因此printk中优先级和格式字符串之间没有逗号。

rjszcb的博客 7243

Linux Component概述和高通component的使用

为了让subsystem按照一定顺序初始化设备才提出来的。subsystem中由很多设备模块,内核加载这些模块的时间不确定。子系统内有些模块是需要依赖其它模块先初始化才能进行自己初始化工作(例如v4l2 subdev和v4l2 video device),这时就要用到component框架。例如v4l2 subdev和v4l2 video device中,谁依赖谁先创建?

lz_1990的专栏 1610

告别手绘!用Aseprite+Unity Tilemap,从AI生成到2D游戏地图的保姆级搭建流程

本文详细介绍了如何利用Aseprite和Unity Tilemap从AI生成素材到搭建2D游戏地图的完整流程。涵盖AI生成素材的预处理、图层管理、动画制作,以及Unity中的Tilemap系统配置和性能优化技巧,帮助开发者高效创建像素风游戏地图。

weixin_29015483的博客 582

关闭linux kernel内核的启动log在控制台的输出

是设置终端输出的loglevel是4,可以屏蔽掉大部分启动log。这个只是设置log不在控制台输出,但是文件系统启动后,通过dmesg命令还是可以看到启动过程的log。打开引导加载器的配置文件,如GRUB的配置文件 /boot/grub/grub.cfg。在内核的启动行(以 “linux” 或 “kernel” 开头)中,增加参数。在引导加载器的菜单中选择要启动的内核,并按下。或相应的键以启动编辑后的内核。默认的启动参数bootargs。在内核的启动行中,增加参数。编辑内核的启动参数文件,如。

嵌入式相关的日常 4493

madgwick算法基于MPU9250姿态融合漂移问题的原因

基于MPU9250的madgwick算法姿态漂移问题原因 0、声明 因为这个是现象是不是共性目前本人还没研究过,只是在个体问题研究的基础上得出的结论,或许我买到的MPU9250是一个盗版:),所以只具备参考性。 1、现象 使用MPU9250的加速度计、角速度计、磁力计(AK8963)原始数据输入到madgwick算法中,得到的姿态最终会在停止姿态变化后仍然漂移一小段时间。其中加速度计和角速度计读取速率为400hz,磁力计为100hz,加速度计采样范围±2g,角速度计采样范...

GreedyZombie的博客 3872

Android系统设置kernel log level的方法

kernel log内容过多/过少会影响分析问题,各种系统的版本对kernel log的等级要求也不一样,因此需要对kernel log进行设置。

netwalk的专栏 3234

用 C# 快速构建一套可扩展的上位机框架(实战+源码思想)

本文介绍了一套基于C#的工业上位机开发框架设计方案。该框架通过模块化设计解决了上位机开发中的常见痛点,包括协议适配、通信管理、UI绑定等问题。核心架构采用分层设计,包含协议接口层、调度器层、通信抽象层和UI层,支持MVVM模式。框架提供了协议插件化扩展能力,通过JSON配置实现设备协议定义,同时封装了日志管理、异常处理等基础功能。该方案具有快速搭建、协议驱动、UI分离等特点,可显著提升上位机开发效率,适用于串口、TCP等多种通信场景,并能快速适配新设备协议。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 884

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【用法总结】抓取main_log、events_log、kernel_log日志的方法

Android系统提供了多种日志缓冲区用于开发调试,包括main(应用/系统日志)、system(系统组件)、events(事件日志)、radio(通信相关)等。通过logcat命令可分别查看不同日志:logcat -b main查看应用日志,logcat -b events分析页面生命周期和进程状态,adb shell cat /proc/kmsg获取内核日志。这些日志分别用于定位应用问题、分析ANR/进程异常以及排查底层系统问题,是Android开发调试的重要工具。

TechMix的博客 507

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

高通平台启动log概述(PBL log、sbl1 log、kernel log)

高通平台启动log概述(PBL log、sbl1 log、kernel log) 在嵌入式linux的调试过程中log有着至关重要的地位,等同于医生的CT报告。能够熟悉启动各个阶段的log,如PBL阶段,sbl1阶段,kernel阶段,android阶段,对于分析定位问题有着重要的作用。本文以高通msm8937平台android启动的串口log为例简要介绍一下log相关的技巧和对log的概要介绍。...

jrunw的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

查看kernel的log

(1)实时显示kernel的log 在当前的工作目录下,输入 adb shell cat /proc/kmsg (2)显示所有的kernel的log 进入adb shell, 然后, dmesg 当然,也可以保存到文件中,先进入data目录,然后, dmesg > kernel_log 然后,再pull下来看。

hhitom的博客 4876

[RK3288][Android6.0] 系统重启后保存上一次kernel log机制

阅读数:67 编辑 Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 背景: 最近遇到如下现象: 自动随机重启 板子连接adb和uart无响应 这两个问题都需要抓取上一次的kernel log来查找问题。 虽然我有在系统上做了重启后log的保存机制,但是由于是在用户空间使用脚本做的处理, 如果是kernel crash此类i...

Kris Fei's blog 4415

user版本如何打开uart,让android log从串口kernel log输出

user版本打开uart 如何在user版本中使用串口(uart) bootable/bootloader/lk/app/mt_boot/mt_boot.c 582 #ifdef USER_BUILD 583 sprintf(cmdline,"%s%s",cmdline," printk.disable_uart=1"); 584

Lance 1万+

init进程——从kernel Log查看

init.rc —— 从kernel Log查看   Android是基于Linux内核的系统,因此Android的启动过程是分为两个阶段的: 第一个阶段就是Linux内核的启动 第二个阶段就是Android框架的启动(包括核心服务和程序)。 看了Android系统启动、init进程 – 干了啥事有点感觉,还是云里雾里,现在查看实际Log印证一下 获取kernel Log日志 获取权限问题,通过 adb bugreport 获取 bugreport-XXXXX-2021-01-04-15-28-49

许浑的博客 2834

[RK3399][Android7.1] 调试笔记 --- 查看开机上一次kernel log

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 rk3288平台,rk自己实现了一套机制获取上一次的kernel log. rk3399平台,使用了内核框架中的ramoops机制。 查看方法: #cat /sys/fs/pstore/console-ramoops-0 要开启此功能,需要做以下几点配置(rk3399默认都开...

Kris Fei's blog 4615

高通平台启动log概述(PBL log、sbl1 log、kernel log)【转】

本文转自:https://blog.youkuaiyun.com/RadianceBlau/article/details/78416776?utm_source=blogxgwz9 高通平台启动log概述(PBL log、sbl1 log、kernel log)在嵌入式linux的调试过程中log有着至关重要的地位,等同于医生的CT报告。能够熟悉启动各个阶段的log,如PBL阶段,sbl1阶段,kerne...

weixin_33845881的博客 1414

linux module 加载kernel log

一、Linux Module背景 1、什么是Linux kernel module 操作系统的内核是单一体系结构(monolithic kernel)的。整个内核是一个单独的非常大的程序。与单一体系结构相对的是微内核体系结构(micro kernel),比如Windows NT采用的就是微内核体系结构。对于微内核体系结构特点,操作系统的核心部分是一个很小的内核,实现一些最基本的服务,如创建和删除进程、内存管理、中断管理等等。而文件系统、网络协议等其它部分都在微内核外的用户空间里运行。 这两种体系的内核各有

sdl0358的博客 514
上一篇: <Bat>批处理删除.svn文件夹
下一篇: <Android> 系统编译删除不必要的Apk
_Lulixue_
博客等级 码龄16年 45粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值