在 Linux 中,“日志级别”通常指 内核日志级别(printk) 或 系统日志服务(rsyslog / journald) 的日志级别。不同场景设置方式不同,下面按常见情况分别说明。
cat /proc/sys/kernel/printk
输出示例:
4 4 1 7
含义依次是:
数值含义(越小越严重):
| 级别 | 名称 | 说明 |
|---|---|---|
| 0 | emergency | 系统不可用 |
| 1 | alert | 必须立即处理 |
| 2 | critical | 严重错误 |
| 3 | error | 错误 |
| 4 | warning | 警告 |
| 5 | notice | 普通但重要 |
| 6 | info | 信息 |
| 7 | debug | 调试 |
sudo sysctl -w kernel.printk="4 4 1 7"
或:
echo "4 4 1 7" | sudo tee /proc/sys/kernel/printk
✅ 重启后失效
编辑 GRUB 配置:
sudo vim /etc/default/grub
在 GRUB_CMDLINE_LINUX 中添加:
loglevel=4
示例:
GRUB_CMDLINE_LINUX="loglevel=4"
更新 GRUB:
sudo update-grub # Debian/Ubuntu
sudo grub2-mkconfig -o /boot/grub2/grub.cfg # RHEL/CentOS
dmesg -n 4 # 只显示 warning 及以上
| 级别 | 关键字 |
|---|---|
| 0 | emerg |
| 1 | alert |
| 2 | crit |
| 3 | err |
| 4 | warning |
| 5 | notice |
| 6 | info |
| 7 | debug |
配置文件:
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
示例:只记录 error 及以上
*.err /var/log/messages
示例:不同服务不同级别
authpriv.* /var/log/secure
mail.err /var/log/mail.err
sudo systemctl restart rsyslog
journalctl -p err
journalctl -p warning..err
级别:
emerg, alert, crit, err, warning, notice, info, debug
编辑:
sudo vim /etc/systemd/journald.conf
设置:
MaxLevelStore=info
MaxLevelSyslog=info
重启:
sudo systemctl restart systemd-journald
import logging
logging.basicConfig(level=logging.INFO)
error_log /var/log/nginx/error.log warn;
dockerd --log-level=warn
| 场景 | 推荐方式 |
|---|---|
| 内核调试 | loglevel=8 |
| 减少 dmesg 输出 | dmesg -n 4 |
| 系统日志 | rsyslog / journald |
| 临时测试 | /proc/sys/kernel/printk |
| 永久生效 | GRUB / journald.conf |
如果你能说明 具体场景(比如:内核模块调试 / 服务器日志太多 / systemd 服务日志),我可以给你更精确的配置示例。