在 Linux 中,“日志级别”通常涉及 内核日志级别(kernel log level) 和 用户态日志系统(如 syslog / rsyslog / journald) 两方面。下面分别说明。
cat /proc/sys/kernel/printk
输出示例:
4 4 1 7
含义依次为:
console_loglevel:控制台显示的级别default_message_loglevelminimum_console_logleveldefault_console_loglevel级别数值越小越重要(0 最重要):
0 EMERG
1 ALERT
2 CRIT
3 ERR
4 WARNING
5 NOTICE
6 INFO
7 DEBUG
# 只显示 WARNING 及以上(4)
echo 4 > /proc/sys/kernel/printk
# 显示所有日志(含 DEBUG)
echo 7 > /proc/sys/kernel/printk
# 不显示任何内核日志
echo 0 > /proc/sys/kernel/printk
或使用 dmesg:
dmesg -n 4
编辑 /etc/sysctl.conf 或 /etc/sysctl.d/*.conf:
kernel.printk = 4 4 1 7
然后执行:
sysctl -p
配置文件通常在:
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
示例(只记录 err 及以上):
*.err /var/log/messages
日志级别(从高到低):
emerg
alert
crit
err
warning
notice
info
debug
也可按服务控制,例如:
auth.info /var/log/auth.log
kern.warning /var/log/kern.log
修改后重启:
systemctl restart rsyslog
journalctl -p err
journalctl -p warning
优先级:
0 emerg
1 alert
2 crit
3 err
4 warning
5 notice
6 info
7 debug
编辑:
/etc/systemd/journald.conf
示例:
MaxLevelStore=info
MaxLevelSyslog=info
重启:
systemctl restart systemd-journald
很多服务有独立日志级别:
error_log /var/log/nginx/error.log warn;
# /etc/ssh/sshd_config
LogLevel INFO
{
"log-level": "warn"
}
| 场景 | 调整方式 |
|---|---|
| 内核日志 | /proc/sys/kernel/printk 或 dmesg -n |
| 系统日志 | rsyslog / syslog 配置 |
| systemd | journalctl -p + journald.conf |
| 应用日志 | 各服务配置文件 |
如果你能说明 具体是哪种日志(内核 / 系统 / 某个服务),我可以给你更精确的命令。