linux错误日志分四类:系统级(/var/log/messages等)、服务进程(/var/log/apache2/Error.log等)、启动初始化(dmesg、journalctl -b -1)和应用用户级(catalina.out、~/.xsession-errors等),各具定位故障的特定作用。

Linux 系统错误日志主要记录系统运行中出现的异常、失败操作和潜在问题,是排查故障的核心依据。不同服务和组件会将日志写入不同位置,格式与严重程度也各不相同。
系统级日志(syslog/journald)
由 rsyslog 或 systemd-journald 统一收集内核、启动过程、硬件事件等基础信息。关键文件包括:
– /var/log/messages(多数发行版通用,含内核、服务启动、网络等警告与错误)
– /var/log/syslog(debian/ubuntu 系统常用)
– /var/log/kern.log(仅内核消息,适合排查驱动、内存、硬件兼容性问题)
使用 journalctl -p 3 -b 可查看本次启动以来所有“错误级(err)及以上”的日志条目。
服务进程日志(daemon logs)
每个守护进程通常自建日志文件,路径和命名习惯因服务而异:
– /var/log/apache2/error.log 或 /var/log/httpd/error_log(Web 服务请求失败、模块加载错误)
– /var/log/mysql/error.log 或 /var/log/mariadb/mariadb.log(数据库连接拒绝、表损坏、权限不足)
– /var/log/secure(RHEL/centos 中记录 ssh 登录失败、sudo 权限拒绝等安全相关事件)
这类日志往往包含具体时间戳、客户端 IP、错误码(如 HTTP 502、MySQL 1045),直接指向问题源头。
启动与初始化日志(boot & init)
系统启动阶段的日志易被忽略,但对诊断无法开机、服务未启动等问题至关重要:
– dmesg 输出内核环缓冲区内容,反映硬件检测、驱动加载、内存映射等早期错误(如 “ata1: link is slow to respond” 表示硬盘响应延迟)
– journalctl -b -1 查看上一次启动日志,对比正常启动流程可快速定位中断点
– /var/log/boot.log(部分系统启用,记录 systemd 单元启动顺序与超时)
应用与用户级日志(app & user logs)
由应用程序自行生成,位置不固定,常见于:
– 应用安装目录下的 logs/ 子目录(如 tomcat 的 catalina.out)
– 用户主目录中的隐藏日志(如 ~/.xsession-errors 记录桌面环境图形会话错误)
– 容器化应用通过 docker logs
这类日志通常包含堆栈跟踪(stack trace)、函数调用链和变量值,适合开发人员分析逻辑异常。