一、日志级别说明
Linux常见日志级别(从低到高):
- DEBUG:调试信息,最详细。
- INFO:一般信息,记录正常操作。
- NOTICE:通知信息,正常但重要。
- WARNING:警告信息,潜在问题。
- ERROR:错误信息,已发生错误。
- CRIT:严重错误,系统可能无法运行。
- ALERT:紧急情况,需立即处理。
- EMERG:系统不可用,最高级别。
二、设置方法
1. 系统日志(syslog/rsyslog)
- 配置文件:
- 旧系统:
/etc/syslog.conf - 新系统:
/etc/rsyslog.conf或/etc/rsyslog.d/*.conf。
- 旧系统:
- 修改规则:
- 全局设置:
*.* /var/log/syslog;level(如*.warning /var/log/syslog)。 - 特定服务:
service.* /var/log/service.log;level(如authpriv.* /var/log/secure)。
- 全局设置:
- 重启服务:
sudo systemctl restart rsyslog。
2. systemd-journald
- 配置文件:
/etc/systemd/journald.conf。 - 设置参数:
SystemMaxUse=100M:限制日志大小。- 通过
journalctl命令过滤日志级别(如journalctl -p err查看错误日志)。
- 重启服务:
sudo systemctl restart systemd-journald。
3. 应用程序日志
- 常见应用:
- Nginx:修改
/etc/nginx/nginx.conf中error_log级别(如error_log /var/log/nginx/error.log warn;)。 - MySQL:修改
/etc/my.cnf中log_warnings(0-3,0为无警告)。 - Apache:修改
/etc/httpd/conf/httpd.conf中LogLevel(如LogLevel error)。
- Nginx:修改
- 重启服务:
sudo systemctl restart nginx/mysql/apache2。
三、管理与优化
- 查看日志:
journalctl -f:实时监控日志。tail -f /var/log/syslog:查看系统日志。
- 清理日志:
- 使用
logrotate工具自动轮转(编辑/etc/logrotate.conf)。 - 手动清理:
sudo journalctl --vacuum-size=100M。
- 使用
- 权限控制:
- 确保日志文件权限正确(如
sudo chown root:adm /var/log/syslog,chmod 640)。
- 确保日志文件权限正确(如
四、环境建议
- 生产环境:设置为
WARNING或ERROR,减少日志量。 - 开发环境:设置为
DEBUG或INFO,便于调试。
参考来源:[1,2,3,4,5,6,7,8,9,10,11,12]