printk 로그 출력 Linux Memo 2014. 6. 13. 22:34

1. printk 로그 레벨 및 의미

 

로그레벨 

Define 

 의미

 0

 KERN_EMERG

 시스템 동작불능 메시지

 1

 KERN_ALERT

 즉시 출력 메시지

 2

 KERN_CRIT

 치명적 에러 메시지

 3

 KERN_ERR

 에러 메시지

 4

 KERN_WARNING

 경고 메시지

 5

 KERN_NOTICE

 주의 메시지

 6

 KERN_INFO

 정보 메시지

 7

 KERN_DEBUG

 디버그용 메시지

 

2. 커널 로그 출력 레벨 확인

$ cat /proc/sys/kernel/printk

4  4  1  7

의 형태로 출력됨

 

컬럼 

 레벨

 의미

 1

 Console Log Level

 이 값보다 높은 우선순위 메세지들을 콘솔에 출력

 2

 Default Message Log Level

 우선순위 없는 메시지들의 우선순위

 3

 Minimum Console Log Level

 Console Log Level 이 설정될 수 있는 최소값

 4

 Default Console Log Level

 Console Log Level 용 기본값

 

3. 커널 로그 출력 레벨 변경

# echo "0 4 1 7" > /proc/sys/kernel/printk

 

4. 콘솔창에 로그 메시지 출력이 안되도록 설정

Console Log Level 필드의 값을 0 으로 입력하여 설정하면 된다.

# echo "0" > /proc/sys/kernel/printk

 

5. 커널 부팅시에 Log Level 을 설정하는 두가지 방법

    1)  .config 파일의 printk and dmesg options 절에 있는 다음 항목을 원하는 값으로 설정

CONFIG_DEFAULT_MESSAGE_LOGLEVEL=7

변경후에는 전체를 다시 빌드해야 하는 것으로 판단됨

2) 커널 커맨드라인 (bootargs) 에 loglevel=7 의 형태로 추가

자세한 것은 커널 소스 디렉토리의 Documentation/kernel-parameters.txt 의 loglevel 관련 항 참고