이것Do! 저것Do!!

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