Sorry, *four* ways. There's also drivers that emit clear deprecation messages in the kernel log.
On one of my machines, booted daily, I'd been getting deprecation messages for one feature for months, but I never noticed it because it was lost among several hundred Kb of mostly-boring messages which flashed past far too fast to read, and it was so long it overshot the dmesg buffer (I hadn't noticed it grow to overflow the buffer in the last few releases). And I'm a bleeding-edge kernel user. How are random users supposed to be able to handle this?
(Kernel boot message volume on SMP is being reduced, a bit. Good.)