温馨提示×

Linux日志级别怎么设置

小樊
36
2026-08-02 06:38:03
栏目: 智能运维

在 Linux 中,“日志级别”通常指 内核日志级别(printk)系统日志服务(rsyslog / journald) 的日志级别。不同场景设置方式不同,下面按常见情况分别说明。


一、内核日志级别(printk / dmesg)

1️⃣ 查看当前内核日志级别

cat /proc/sys/kernel/printk

输出示例:

4       4       1       7

含义依次是:

  1. 当前控制台日志级别
  2. 默认消息日志级别
  3. 最小允许日志级别
  4. 引导时默认级别

数值含义(越小越严重):

级别 名称 说明
0 emergency 系统不可用
1 alert 必须立即处理
2 critical 严重错误
3 error 错误
4 warning 警告
5 notice 普通但重要
6 info 信息
7 debug 调试

2️⃣ 临时修改内核日志级别

sudo sysctl -w kernel.printk="4 4 1 7"

或:

echo "4 4 1 7" | sudo tee /proc/sys/kernel/printk

重启后失效


3️⃣ 永久修改内核日志级别

编辑 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

4️⃣ 控制 dmesg 显示级别

dmesg -n 4   # 只显示 warning 及以上

二、rsyslog 日志级别设置

1️⃣ 日志级别(rsyslog / syslog)

级别 关键字
0 emerg
1 alert
2 crit
3 err
4 warning
5 notice
6 info
7 debug

2️⃣ 修改 rsyslog 规则

配置文件:

/etc/rsyslog.conf
/etc/rsyslog.d/*.conf

示例:只记录 error 及以上

*.err    /var/log/messages

示例:不同服务不同级别

authpriv.*    /var/log/secure
mail.err      /var/log/mail.err

3️⃣ 重启 rsyslog

sudo systemctl restart rsyslog

三、systemd-journald 日志级别

1️⃣ 查看 journal 日志

journalctl -p err
journalctl -p warning..err

级别:

emerg, alert, crit, err, warning, notice, info, debug

2️⃣ 限制 journald 日志级别

编辑:

sudo vim /etc/systemd/journald.conf

设置:

MaxLevelStore=info
MaxLevelSyslog=info

重启:

sudo systemctl restart systemd-journald

四、应用层日志级别示例

1️⃣ Python logging

import logging
logging.basicConfig(level=logging.INFO)

2️⃣ Nginx

error_log /var/log/nginx/error.log warn;

3️⃣ Docker

dockerd --log-level=warn

五、快速选择建议

场景 推荐方式
内核调试 loglevel=8
减少 dmesg 输出 dmesg -n 4
系统日志 rsyslog / journald
临时测试 /proc/sys/kernel/printk
永久生效 GRUB / journald.conf

如果你能说明 具体场景(比如:内核模块调试 / 服务器日志太多 / systemd 服务日志),我可以给你更精确的配置示例。

0