插件窝 干货文章 Linux系统中如何设置日志级别

Linux系统中如何设置日志级别

级别 日志 设置 rsyslog 613    来源:    2025-05-07

Linux系统中设置日志级别的方法

在Linux系统中,有多种方式可以设置日志级别,具体取决于你使用的日志系统。以下是几种常见日志系统的设置方法:

1. 系统日志(syslog/rsyslog)

查看当前日志级别

cat /etc/rsyslog.conf

设置日志级别

编辑/etc/rsyslog.conf文件,可以设置不同设施的日志级别:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*

日志级别从低到高: - debug - info - notice - warning (warn) - err (error) - crit (critical) - alert - emerg (panic)

2. journald (systemd日志)

查看当前日志级别

journalctl -p err -b

设置日志级别

编辑/etc/systemd/journald.conf

[Journal]
#LogLevel=info
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info

3. 内核日志(klogd)

查看当前内核日志级别

cat /proc/sys/kernel/printk

输出4个数字,分别代表:当前控制台日志级别、默认消息日志级别、最低控制台日志级别、默认控制台日志级别

设置内核日志级别

临时设置:

echo "6 4 1 7" > /proc/sys/kernel/printk

永久设置:

# 在/etc/sysctl.conf中添加
kernel.printk = 6 4 1 7

4. 特定应用程序日志级别

许多应用程序有自己的日志级别配置,通常可以在配置文件中设置:

Nginx

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

Apache

LogLevel warn

MySQL

[mysqld]
log_error_verbosity = 3  # 1=errors, 2=errors+warnings, 3=errors+warnings+notes

5. 动态调整日志级别

对于某些服务,可以在不重启服务的情况下调整日志级别:

systemd服务

journalctl -u nginx.service -f -p debug

rsyslog

# 重新加载配置
systemctl reload rsyslog

注意事项

  1. 更高的日志级别(如debug)会产生更多日志,可能影响性能并占用磁盘空间
  2. 生产环境通常使用warning或error级别
  3. 调试时可临时设置为debug级别
  4. 更改配置后记得重启相关服务

希望这些信息对你有帮助!如需针对特定服务或场景的更详细指导,请提供更多细节。