Ubuntu日志级别合理设置指南
Ubuntu的日志管理主要依赖两个核心组件:
/etc/rsyslog.conf、/etc/rsyslog.d/50-default.conf)。/etc/systemd/journald.conf)。日志级别从低到高(详细到精简)依次为:
DEBUG,获取完整日志以快速定位代码问题。
/etc/rsyslog.conf,找到$DefaultLoggingLevel(若不存在则添加),设置为DEBUG。/etc/systemd/journald.conf,设置SystemMaxLevel=debug、RuntimeMaxLevel=debug。INFO或WARNING,平衡日志详细程度与系统性能。
INFO:$DefaultLoggingLevel INFO。info:SystemMaxLevel=info、RuntimeMaxLevel=info。不同服务(如Apache、Nginx、内核)可单独设置日志级别,避免无关日志占用资源:
/etc/rsyslog.conf,修改kern.*规则(如kern.warning /var/log/kern.log,仅记录警告及以上级别的内核消息)。/etc/apache2/apache2.conf,修改LogLevel指令(如LogLevel warn,记录警告及以上级别的Apache日志)。/etc/nginx/nginx.conf,修改error_log指令(如error_log /var/log/nginx/error.log warn;,设置Nginx错误日志级别为warn)。sudo systemctl restart apache2/nginx)使配置生效。journalctl --list-boots(显示启动日志级别)。journalctl -p err(显示错误及以上级别日志)、journalctl -u nginx(查看Nginx服务日志)。journalctl --vacuum-time=2weeks(删除两周前的日志)、journalctl --vacuum-size=1G(限制日志总大小为1GB)。使用logrotate工具自动轮换日志(默认配置文件:/etc/logrotate.conf、/etc/logrotate.d/):
sudo logrotate -f /etc/logrotate.conf。/etc/logrotate.d/rsyslog,设置maxsize 100M(日志文件超过100MB时轮换)、rotate 4(保留4个旧日志)。对于产生大量无用日志的服务(如avahi-daemon,用于零配置网络),可降低其日志级别:
/etc/avahi/avahi-daemon.conf),修改log-level为warning(或err)。sudo systemctl restart avahi-daemon。设置完成后,通过以下命令验证日志级别是否生效:
sudo systemctl status rsyslog。sudo systemctl status systemd-journald。/var/log/syslog、/var/log/kern.log),确认日志级别是否符合预期。根据实际运行情况(如日志量是否过大、故障排查是否方便),动态调整日志级别(如生产环境从INFO调整为WARNING,故障排查时临时调整为DEBUG)。