How do I disable messages or logging from printing on the console/virtual terminals?

You can use the command

sudo dmesg -n 1

to suppress all messages from the kernel (and its drivers) except panic messages from appearing on the console.

To fix at each boot, add the command to:

/etc/rc.local

dmesg comes with two handy options for that:

-D, --console-off           disable printing messages to console
-E, --console-on            enable printing messages to console

dmesg -D is just a shortcut for dmesg -n 1, except that it stores the current log level, so that you can easily restore it with dmesg -E. So it's a bit more convenient than changing the log level with dmesg -n.

Additionally, you can check the current log level with:

$ cat /proc/sys/kernel/printk
7       4       1       7

man klogctl for more explanations on these numbers...


/proc/sys/kernel/printk

You can also set the log level directly with

echo 1 > /proc/sys/kernel/printk

which is basically what dmesg is doing.

The format of that file is explained at: https://superuser.com/a/793692/128124

loglevel command line boot parameter

Sets the initial value at boot time, which allows you to see pre-init messages.