커널 메시지 출력하기 - printk()
Development2020. 10. 5. 17:55
1. 리눅스에서의 로그레벨 (linux/kernel.h)
#define KERN_EMERG "<0>" /* system is unusable */ |
#define KERN_ALERT "<1>" /* action must be taken immediately */ |
#define KERN_CRIT "<2>" /* critical conditions */ |
#define KERN_ERR "<3>" /* error conditions */ |
#define KERN_WARNING "<4>" /* warning conditions */ |
#define KERN_NOTICE "<5>" /* normal but significant condition */ |
#define KERN_INFO "<6>" /* informational */ |
#define KERN_DEBUG "<7>" /* debug-level messages */ |
2. printk()를 이용한 로그레벨 적용 방법
printk(KERN_INFO "info message...\n");
printk("<4>" "warning message...\n");
printk("<3> error message...\n");
printk("default loglevel...\n"); // default message loglevel
3. 현재 시스템 상의 로그레벨 확인 방법
$cat /proc/sys/kernel/printk
3 4 1 3 --------> <실행 결과>
4. 실행 결과로 출력되는 숫자들의 의미
#define console_loglevel (console_printk[0]) // 현재 설정되어 있는 로그레벨 |
#define default_message_loglevel (console_printk[1]) // printk()에서 로그레벨을 명시하지 않았을 경우 적용되는 레벨 |
#define minimum_console_loglevel (console_printk[2]) // 설정할 수 있는 최소한의 로그레벨 |
#define default_console_loglevel (console_printk[3]) // 디폴트 로그레벨 |
5. 로그레벨 변경 방법
a. /etc/sysctl.conf에서 "kernel.printk"의 내용을 수정
b. dmesg -n 옵션 사용 (ex>dmesg -n 5)
c. echo 5 > /proc/sys/kernel/printk
'Development' 카테고리의 다른 글
Linux의 syslog에서 millisecond단위까지 timestamp 출력하는 방법 (0) | 2020.12.11 |
---|---|
라즈베리파이 부팅 후 터미널 자동실행 (1) | 2020.10.07 |
윈도우즈에서 일렉트론 데스크탑 어플리케이션 개발하기 3 (4) | 2020.04.29 |
윈도우즈에서 일렉트론 데스크탑 어플리케이션 개발하기 2 (2) | 2020.04.29 |
윈도우즈에서 일렉트론 데스크탑 어플리케이션 개발하기 1 (0) | 2020.04.28 |