若Java应用通过systemd启动(如Spring Boot打包的jar服务),可使用journalctl命令查看其日志。常用参数:
sudo journalctl -u your-java-service.service(替换为实际服务名,如my-spring-app.service);sudo journalctl -u your-java-service.service -f(类似tail -f);sudo journalctl -u your-java-service.service -n 1000;sudo journalctl -u your-java-service.service | grep "ERROR"。Java应用通常会将日志输出到配置的文件中(如Log4j、Logback配置的路径),常见位置包括:
System.getProperty("user.dir")获取);/var/log/目录(如Tomcat的catalina.out、自定义的app.log);logback.xml中的<file>标签)。常用命令:
cat /path/to/logfile.log(适合小文件);tail -f /path/to/logfile.log(如tail -f /var/log/tomcat/catalina.out);less /path/to/logfile.log(支持上下翻页,按/键搜索关键字);grep "ERROR" /path/to/logfile.log(区分大小写)、grep -i "error" /path/to/logfile.log(忽略大小写)、grep -E "Exception|Error" /path/to/logfile.log(正则匹配多个关键字)。结合grep、awk、sed等工具,可进一步提取或处理日志中的特定信息:
grep "ERROR" /path/to/logfile.log(如查找所有错误日志);awk '{print $1, $2, $3}' /path/to/logfile.log(假设日志格式为“时间 类名 内容”,提取前三个字段);awk -v RS= -v ORS='\n\n' '/Exception/' /path/to/logfile.log | less(将连续的空行视为分隔符,保留完整的异常栈信息);sed -n '/ERROR/p' /path/to/logfile.log(仅显示包含“ERROR”的行)。$CATALINA_HOME/logs/目录下,关键文件包括:
catalina.out:标准输出日志(包含所有控制台输出);localhost.<date>.log:本地主机日志(如Servlet初始化信息);manager.<date>.log:管理器应用日志(如部署操作记录)。tail -f /var/log/tomcat/catalina.out实时查看最新请求日志。spring-boot-starter-logging(Logback),日志文件通常位于logs/目录下(如spring-boot.log)。可通过application.properties或application.yml配置日志路径和级别:logging.file.name=/path/to/spring-boot.log # 指定日志文件路径
logging.level.root=INFO # 设置根日志级别(DEBUG/INFO/WARN/ERROR)
logging.level.com.example=DEBUG # 设置特定包的日志级别(如com.example包)
若偏好图形界面,可使用以下工具:
通过以上方法,可根据Java应用的运行方式(systemd/直接运行)和日志配置(文件路径/框架),快速查询Ubuntu系统中的Java特定信息(如错误、警告、特定事件)。