由于Linux内核的级别控制,printk打印的内容无法从控制台成功输出,可以使用dmesg命令输出所有级别的信息。
输入3: sudo dmesgn8可以打印所有日志信息
Linux命令: dmesg功能说明:显示启动消息。
语法: dmesg [-cn][-s ]
补充说明: kernel将启动信息保存在ring buffer中。 如果启动时没有时间查看信息,可以使用dmesg进行查看。 启动信息也保存在/var/log目录中,并保存在名为dmesg的文件中。
参数:
显示-c消息后,清除ring buffer的内容。
-s预配置为8196,与ring buffer的大小完全相同。
-n设置记录信息的级别。
printk的8个日志级别:
# define kern _ emerg '0'/* systemisunusable * /
# define kern _ alert '1'/* actionmustbetakenimmediately * /
# define kern _ crit '2'/* critical conditions * /
# define kern _ err '3'/* error conditions * /
# define kern _ warning '4'/* warning conditions * /
# define kern _ notice '5'/* normalbutsignificant * /
# define kern _ info '6'/* informational * /
# define kern _ debug '7'/* debug-level messages * /
但是,上述方法还不是最好的方法。 因为在Ubuntu下,即使更改日志级别,也必须切换到控制台下才能看到输出的信息。
最好的方法是打开其他终端,在一个终端上不断监视,打印输出当前系统的日志信息。
1在终端上输入:
2whiletrue
3do
4 sudo dmesg -c
5休眠1
六磅
该终端每秒查看并清除当前系统的日志