Linux 服务器查看微服务日志(以 system 服务为例)

📅 2026/8/4 16:52:41
Linux 服务器查看微服务日志(以 system 服务为例)
Linux 服务器查看微服务日志以 system 服务为例一、找到日志文件位置# 方法1全局搜索日志文件find/-name*system*-name*.log2/dev/null# 方法2在常见部署目录查找find/opt /home /data /usr/local-name*system*-name*.log2/dev/null# 方法3查看进程启动参数找到工作目录ps-ef|grepsystem# 输出示例java -jar /opt/app/system-service.jar --logging.file.path/opt/logs/system逐段拆解片段含义findLinux 文件搜索命令/搜索的起始路径即根目录全盘搜索-name *system*第一个条件文件名包含 “system”*是通配符匹配任意字符-name *.log第二个条件文件名以 “.log” 结尾2/dev/null将标准错误输出重定向到黑洞屏蔽报错信息关键点详解1. 两个-name是 AND与 关系-name*system*-name*.log等价于-name*system*-a-name*.log即文件名必须同时满足两个条件✅ system-service.log → 匹配✅ system.log → 匹配❌ system-service.txt → 不匹配不是 .log❌ app.log → 不匹配不含 system2. 通配符**system* → 任意字符 system 任意字符 *.log → 任意字符 .log3. 为什么需要加2/dev/null解析部分含义2文件描述符 2即 stderr标准错误重定向/dev/null空设备“黑洞”写入的内容全部丢弃全盘搜索时很多目录没有权限访问会产生大量报错find: /proc/12345/fd: Permission denied find: /root/.ssh: Permission denied ...加了2/dev/null后这些报错全部被屏蔽终端只显示搜索结果更清爽。常见日志路径/opt/logs/system/system.log /home/app/logs/system-service.log /data/logs/system/system-info.log补充说明变体说明find /opt -name *.log只搜 /opt 目录范围更小更快find / -iname *system*-iname忽略大小写find / -name *.log -mtime -1只找最近1天修改过的 .logfind / -name *.log -size 100M只找大于100MB的日志二、实时查看日志最常用# 实时滚动查看最新日志tail-f/opt/logs/system/system.log# 查看最后 200 行并持续跟踪tail-200f/opt/logs/system/system.log# 同时监控多个日志文件tail-f/opt/logs/system/system-info.log /opt/logs/system/system-error.log三、搜索/过滤日志# 搜索关键字如异常、某个接口grepERRORsystem.loggrepNullPointerExceptionsystem.loggrep/api/user/loginsystem.log# 忽略大小写 显示行号grep-inerrorsystem.log# 查看关键字前后5行上下文grep-C5Exceptionsystem.log# 实时过滤只看ERROR级别tail-fsystem.log|grepERROR# 按时间范围过滤查看某段时间的日志grep2026-07-30 16:system.logsed-n/2026-07-30 16:00/,/2026-07-30 16:30/psystem.log四、分页查看大日志文件# 分页查看支持搜索按 / 输入关键字n 下一个lesssystem.log# 直接跳到文件末尾看最新日志lessG system.log# 查看文件头部/尾部head-100system.logtail-100system.log五、Docker 部署的情况# 查看容器列表找到 system 服务dockerps|grepsystem# 查看日志实时dockerlogs-fsystem-service# 查看最近 500 行dockerlogs--tail500system-service# 按时间过滤dockerlogs--since2026-07-30T16:00:00system-service# 进入容器内部查看日志文件dockerexec-itsystem-servicebashcd/app/logstail-fsystem.log六、Systemd 管理的服务# 查看服务日志journalctl-usystem-service# 实时跟踪journalctl-usystem-service-f# 查看最近1小时journalctl-usystem-service--since1 hour ago# 只看错误journalctl-usystem-service-perr七、实用组合技巧# 统计今天ERROR数量grep-cERRORsystem.log# 查看最近的异常堆栈最近一次Exception及后续30行grep-nExceptionsystem.log|tail-1# 假设得到行号 12345sed-n12345,12375psystem.log# 监控日志中是否出现新错误脚本化tail-fsystem.log|grep--line-bufferedERROR|whilereadline;doecho[$(date)]$linedone# 日志文件太大时查看磁盘占用du-sh/opt/logs/system/ls-lhS/opt/logs/system/# 按大小排序八、Spring Boot 微服务常见日志配置参考# application.yml 中的日志配置logging:file:path:/opt/logs/systemname:/opt/logs/system/system.loglevel:root:INFOcom.xxx.system:DEBUGlogback:rollingpolicy:max-file-size:100MBmax-history:30小提示如果不确定日志在哪最快的方式是ps -ef | grep system看启动命令或者find / -name *.log -mmin -60 2/dev/null找最近1小时内有写入的日志文件。