커널모듈에서 모듈에 관련된 메시지를 보여주기 위해 printk()를 사용한다.


printk 로그레벨없이 사용하면 가끔 로그메시지가 miss되는 경우가 있다.
이런경우 로그레벨을 보다 높여(예를들어, KERN_CRIT) 주면 된다.


다음과 같이 variable arguments구문을 사용하여 모듈전용 함수를 만들어 쓸수 있다.

mod_logging_1.png


접두어 'pwm_' 대신에 각 모듈에 맞는 이름을 사용할 있다.


위에 특이한 점 하나는 pwm_log을 사용할때 pwm_log함수가 드라이버이름(DRV_NAME)과 '\n'을 덧붙여 준다는 것이다.


다음과 같이 PWM_DEBUG을 정의해 주면 매크로(DEBUG)의 정의 여부에 따라 PWM_DEBUG의 동작을 달리 할 수 있다.

mod_logging_2.png


DEBUG를 정의하면 PWM_DEBUG은 pwm_log와 같지만, DEBUG을 정의하지 않으면 PWM_DEBUG()는 호출되지 않는 것과 같다.


매크로DEBUG를 gcc커맨드에 옵션(-DDEBUG)으로 넣어 모듈빌드할 수 있다.