Java應用的日志位置取決于其配置,常見路徑包括:
/var/log/java/
(如獨立運行的jar包);/var/log/tomcatX/
(X
為Tomcat版本號,如tomcat9
)或/opt/tomcatX/logs/
;logs
文件夾(如/opt/myapp/logs/app.log
);log4j.properties
、logback.xml
等配置文件中的appender
設置(如FileAppender
的file
屬性)確定。cat
命令:直接輸出日志文件全部內容(適合小文件)。cat /path/to/app.log
。less
命令:分頁查看大文件,支持上下滾動(↑/↓
鍵)、搜索(/keyword
)及退出(q
鍵)。less /path/to/app.log
。tail
命令:查看文件末尾內容,-f
參數實時監控新增日志(適合動態查看)。tail -f /path/to/app.log
(實時查看)、tail -n 20 /path/to/app.log
(查看最后20行)。grep
命令:過濾關鍵字(如ERROR
),快速定位問題日志。grep "ERROR" /path/to/app.log
(搜索ERROR
行)、grep -E "ERROR|WARN" /path/to/app.log
(正則匹配多個關鍵字)。journalctl
)若Java應用以systemd
服務運行(如通過systemctl start my-java-app
啟動),可使用journalctl
查看其日志:
sudo journalctl --unit=my-java-app
(my-java-app
為服務名,通過systemctl list-units | grep java
查找);sudo journalctl --unit=my-java-app -f
;sudo journalctl --unit=my-java-app -n 50
(顯示最近50行)。對于大規模日志,可使用ELK Stack(Elasticsearch+Logstash+Kibana)或Greylog進行集中管理、分析與可視化:
sudo apt install elasticsearch logstash kibana
;logstash.conf
收集Java日志(如input { file { path "/path/to/app.log" } }
);sudo systemctl start elasticsearch logstash kibana
;http://localhost:5601
(Kibana)訪問并分析日志。grep -i "error" /path/to/app.log
(-i
忽略大小寫);grep "2025-09-20" /path/to/app.log
(查找特定日期日志);grep -c "ERROR" /path/to/app.log
(統計ERROR
行數)。通過以上方法,可快速定位并分析Ubuntu系統中Java應用的日志,幫助排查問題。