在 Debian(以及大多数 Linux 系统)中,“日志级别”主要涉及 内核日志级别 和 用户态日志服务(rsyslog / journald)级别。下面分情况说明如何调整。
cat /proc/sys/kernel/printk
输出示例:
7 4 1 7
含义:
当前控制台日志级别 默认级别 最小级别 引导时默认级别
sudo sysctl -w kernel.printk="4 4 1 7"
或:
echo "4 4 1 7" | sudo tee /proc/sys/kernel/printk
常见级别(数值越小越重要):
| 级别 | 含义 |
|---|---|
| 0 | EMERG |
| 1 | ALERT |
| 2 | CRIT |
| 3 | ERR |
| 4 | WARNING |
| 5 | NOTICE |
| 6 | INFO |
| 7 | DEBUG |
例如:只显示 WARNING 及以上
kernel.printk=4
编辑:
sudo nano /etc/sysctl.conf
添加:
kernel.printk = 4 4 1 7
生效:
sudo sysctl -p
编辑:
sudo nano /etc/systemd/journald.conf
关键参数:
MaxLevelStore=info
MaxLevelSyslog=info
MaxLevelKMsg=warning
可用值:
emerg alert crit err warning notice info debug
重启生效:
sudo systemctl restart systemd-journald
journalctl -p err
journalctl -p warning
sudo nano /etc/rsyslog.conf
# 或
sudo nano /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
级别说明(从低到高):
debug < info < notice < warning < err < crit < alert < emerg
例如:只记录 err 及以上
*.err /var/log/messages
sudo systemctl restart rsyslog
sudo nano /etc/ssh/sshd_config
LogLevel INFO
可选:QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG
sudo systemctl restart ssh
error_log /var/log/nginx/error.log warn;
如 MySQL、Docker 等,通常在其自身配置文件中设置日志级别。
| 场景 | 调整方式 |
|---|---|
| 内核日志 | /proc/sys/kernel/printk |
| systemd | journald.conf |
| 传统日志 | rsyslog.conf |
| 单个服务 | 服务自身配置文件 |
如果你能说明 具体是哪种日志(内核 / systemd / rsyslog / 某个服务),我可以给你更精确的修改示例。