在使用 Debian 或其他基于 Debian 的 Linux 发行版(如 Ubuntu)时,理解日志级别和优先级是系统管理和故障排查的关键。本文将手把手教你认识和配置 Debian日志级别、syslog优先级,并通过
rsyslog实现灵活的日志管理。无论你是刚接触 Linux 的小白,还是有一定经验的用户,都能从中受益。

什么是日志级别?
在 Linux 系统中,应用程序和内核会通过
syslog协议将运行信息写入日志文件。为了区分消息的重要程度,系统定义了多个日志级别(Log Levels),也称为优先级(Priorities)。这些级别从高到低如下:
emerg系统不可用,紧急情况 1
alert必须立即处理的问题 2
crit严重错误 3
err一般错误 4
warning警告信息 5
notice需要注意但非错误的信息 6
info普通信息 7
debug调试信息(通常仅开发使用)
数值越小,优先级越高。例如,
emerg(0)表示系统即将崩溃,而
debug(7)则用于开发调试,通常不会在生产环境中启用。
Debian 中的日志服务:rsyslog
现代 Debian 系统默认使用
rsyslog作为日志守护进程。它比传统的
syslogd更强大,支持模块化、远程日志、过滤规则等高级功能。
主要日志文件通常位于
/var/log/目录下,例如:
/var/log/syslog:系统主日志(包含大部分信息)
/var/log/auth.log:认证相关日志(如 SSH 登录)
/var/log/kern.log:内核日志
/var/log/messages:部分系统消息(某些发行版中存在)
如何查看当前日志?
你可以使用以下命令实时查看日志:
假设你想将所有 # 查看最近10条系统日志sudo tail -n 10 /var/log/syslog# 实时跟踪日志(按 Ctrl+C 退出)sudo tail -f /var/log/syslog# 按日志级别过滤(例如只看错误)sudo grep "error\|Error\|ERR" /var/log/syslog自定义日志优先级:修改 rsyslog 配置
mail
设施(facility)的日志,且级别为 info
及以上(即数值 ≤6)的消息记录到单独的文件 /var/log/mail-custom.log
中。
编辑 rsyslog 配置文件:
在文件中添加以下内容: 保存并退出后,重启 rsyslog 服务使配置生效: 现在,所有邮件相关的 info、notice、warning、err 等日志都会被记录到 在 syslog 中,每条日志消息都包含两个属性: 在 rsyslog 配置中,格式为: 例如: 如果你发现 这样,只有 warning、err、crit、alert、emerg 级别的日志才会写入 掌握 Debian日志级别 和 syslog优先级 是 Linux 系统管理的基础技能。通过合理配置 rsyslog,你可以实现精细化的日志分类、过滤和存储,从而提升系统可维护性和安全性。无论是排查故障、审计安全事件,还是优化性能,日志都是你最可靠的伙伴。 希望这篇教程能帮助你轻松上手 Linux系统日志管理!如果你有任何问题,欢迎在评论区留言交流。sudo nano /etc/rsyslog.d/50-mail-custom.conf# 将 mail.info 及更高级别的日志写入自定义文件mail.info /var/log/mail-custom.logsudo systemctl restart rsyslog/var/log/mail-custom.log
中。日志级别与设施(Facility)的组合
kern
(内核)、user
(用户程序)、mail
(邮件系统)等。 优先级(Priority):即我们前面讲的 emerg
到 debug
。facility.priority destination*.* /var/log/all.log
:记录所有设施的所有级别日志 authpriv.* /var/log/secure
:记录所有安全认证日志 *.warn /var/log/warnings.log
:记录所有设施的 warning 及更高级别日志实用技巧:降低日志噪音
/var/log/syslog
被大量 debug 或 info 信息刷屏,可以限制记录级别。例如,只记录 warning 及以上级别的消息:# 编辑主配置文件sudo nano /etc/rsyslog.conf# 找到这一行(通常在开头附近):*.info;mail.none;authpriv.none;cron.none /var/log/syslog# 修改为:*.warn;mail.none;authpriv.none;cron.none /var/log/syslogsyslog
,大大减少日志体积。总结
