Запись журнала ядра при запуске приложения

Я положил некоторые printk утверждение внутри ядра Linux, как это

printk(KERN_DEBUG " Hello from Kernel ");

и мне интересно записать вывод этой команды во время работы a.out приложение, как:

cp /var/log/dmesg oldLog.txt
./a.out
cp /var/log/dmesg newLog.txt
diff oldLog.txt newLog.txt

Но, похоже, этот метод не работает. И newLog.txt, и oldLog.txt одинаковы. Тем не менее, я могу наблюдать "Hello from Kernel" в dmesg вывод команды. Знаете ли вы о простом способе записи журнала, как это?

Мой второй вопрос о логарифмическом уровне. я использовал KERN_DEBUG в printk заявление, но даже если я установлю echo 1 > /proc/sys/kernel/printk это все еще печатать Hello from kernel в dmesg вывод команды.

2 ответа

Это было обсуждено здесь. Где printk() печатает?

printk сообщения будут напрямую отправляться на dmesg,

1) операторы отладки printk всегда отображаются с помощью команды dmesg, не имеет значения, какой уровень логики установлен. Отладочные сообщения можно найти в /var/log/messages. 2) Loglevel настроен на получение отладочных сообщений, напечатанных на консоли. Даже если вы установили наивысший уровень приоритета журнала (KERN_EMERG) для печати сообщения отладки на консоли, оно не будет отображаться в консоли, если запущен X-сервер (GUI). Для получения высокоприоритетных сообщений printk на консоли перейдите в режим консоли.

Другие вопросы по тегам