当前位置: 首页 > news >正文

linux调试杂谈

1.内核日志输出等级修改

通过读写/proc/sys/kernel/printk文件可读取和修改控制台的日志级别
内核通过printk() 函数输出的信息具有日志级别,通过在printk() 输出的字符串前加一个带尖括号的整数来控制等级,例如:
1)日志输出

//日志级别为6的消息 printk("<6>Hello, world!\n");

日志级别定义,在 linux/kernel.h (0~7)

#define KERN_EMERG "<0>" /* systemis unusable */#define KERN_ALERT "<1>" /* actionmust be taken immediately */#define KERN_CRIT "<2>" /*critical conditions */#define KERN_ERR "<3>" /* errorconditions */#define KERN_WARNING "<4>" /* warning conditions */#define KERN_NOTICE "<5>" /* normalbut significant */#define KERN_INFO "<6>" /*informational */#define KERN_DEBUG "<7>" /*debug-level messages */

2)日志等级控制
在系统下通过读写/proc/sys/kernel/printk文件,来读取控制台的日志信息

[root@localhost ~]# cat /proc/sys/kernel/printk4417

说明:以上的格式的四个数字对应下面的格式

控制台日志 消息日志 最低的控制台日志 缺省的控制台 DEFAULT_CONSOLE_LOGLEVEL DEFAULT_MESSAGE_LOGLEVEL MINIMUM_CONSOLE_LOGLEVEL DEFAULT_CONSOLE_LOGLEVEL 解析:(1)控制台日志级别:优先级高于该值的消息将被打印至控制台。(2)缺省的消息日志级别:将用该值来打印没有优先级的消息。(3)最低的控制台日志级别:控制台日志级别可能被设置的最小值。(4)缺省的控制台:控制台日志级别的缺省值。 源文件:kernel/printk.c 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 */};

3)示例

[root@localhost ~]# cat /proc/sys/kernel/printk2212[root@localhost ~]# echo 6 > /proc/sys/kernel/printk[root@localhost ~]# cat /proc/sys/kernel/printk6212[root@localhost ~]# echo 4 6 1 7 > /proc/sys/kernel/printk[root@localhost ~]# cat /proc/sys/kernel/printk4617
http://www.jsqmd.com/news/454966/

相关文章:

  • 告别维护的DeepLearnToolbox:Matlab用户转向Python深度学习生态的迁移指南
  • MTools效果展示:AI驱动的老电影修复,让模糊影像重获新生
  • 10个Unlocker深度解决方案:从故障排查到性能优化
  • FieldTrip:解码脑电信号的科学利器
  • ChatTTS音色克隆实战:从零构建AI辅助开发流程
  • COMSOL自定义函数实战:从解析到随机函数,10分钟搞定复杂物理场建模
  • Pyarmor-Static-Unpack-1shot深度解析:突破加密壁垒的静态解密革新方法
  • 智能客服Agent提示词:从设计原理到工程实践
  • SPI主从机互传数据避坑指南:GD32H7双SPI+DMA配置全流程
  • Java向量API工业部署生死线(JDK 25.0.1+Linux x86_64+AVX-512强制校验清单)
  • Java反编译效率提升实战指南:3大核心优势与5类应用场景全解析
  • SiameseAOE中文-base企业应用:中小企业低成本构建自有评论分析系统的完整路径
  • Fish Speech 1.5语音克隆零基础教程:10秒音频克隆任意音色
  • 解锁3个高效方案:Cursor Pro功能拓展完全指南
  • CUAV Pixhawk V6X飞行控制器完全配置指南
  • 零基础入门ai大模型:用快马平台生成你的第一个情感分析程序
  • 3步实现安全解密:Pyarmor加密脚本静态分析工具实战指南
  • Visual Studio 2022 内置 Dotfuscator 社区版使用指南:从安装到混淆实战
  • 让老旧电脑焕发新生:如何用FlyOOBE轻松安装Windows 11
  • YOLOv毕设项目效率提升实战:从模型轻量化到推理加速的全流程优化
  • DeOldify模型监控与可视化:使用Web技术打造实时仪表盘
  • GME-Qwen2-VL-2B-Instruct集成教程:与Dify平台构建可视化AI智能体(Agent)
  • Emotion2Vec+ Large识别语音情绪:从快乐到悲伤,9种情感全解析
  • YOLOv12性能展示:实时目标检测新标杆,实测延迟低至1.6ms
  • GPEN镜像高级参数详解:肤色保护、细节增强怎么用?
  • Logisim-Evolution:数字电路仿真的创新实践工具 - 从入门到精通指南
  • 南北阁Nanbeige 4.1-3B解析:LSTM时间序列预测模型原理与代码阐释
  • 突破架构壁垒:在Apple Silicon上部署Vivado的跨平台解决方案
  • 从0开始理解 U-Boot:嵌入式系统的“第一道门“,以及我们为什么终于告别了硬编码时代
  • 3个维度突破限制:Cursor Pro开源工具的技术原理与实践指南