Java日志文件的路径主要由日志框架配置或应用启动参数决定,常见场景如下:
默认路径(未自定义配置时)
java.util.logging.log,位于应用程序启动的工作目录(如直接运行java -jar app.jar,则路径为./)。FileAppender,默认路径通常为./logs/application.log(如log4j.properties中log4j.appender.file.File=./logs/app.log)。logs/application.log(需在src/main/resources/logback.xml中配置<file>logs/app.log</file>)。logs子目录下(如Tomcat的$CATALINA_HOME/logs/catalina.out、Jetty的$JETTY_HOME/logs/jetty.log)。journalctl管理(如journalctl -u java-service-name)。自定义路径(通过配置或代码指定)
开发者可通过以下方式修改日志路径:
log4j.properties、logback.xml或logging.properties中设置File参数(如log4j.appender.file.File=/var/log/myapp.log、<file>/var/log/myapp.log</file>)。java -Djava.util.logging.config.file=/path/to/logging.properties -jar app.jar或java -jar app.jar --log=/var/log/custom.log)。FileHandler(JUL)或日志框架API直接设置路径(如new FileHandler("/var/log/myapp.log"))。Linux系统下的基础命令
cat /path/to/logfile.log(如cat /var/log/tomcat/catalina.out)。less /path/to/logfile.log(支持上下翻页,按q退出)。tail -f /path/to/logfile.log(动态显示新增日志,按Ctrl+C停止)。grep "ERROR" /path/to/logfile.log(查找包含“ERROR”的行);tail -f /path/to/logfile.log | grep "ERROR"(实时过滤)。head -n 20 /path/to/logfile.log(显示前20行);tail -n 20 /path/to/logfile.log(显示后20行)。系统日志工具(适用于服务化应用)
若Java应用通过systemd运行(如Tomcat作为服务),可使用journalctl查看日志:
journalctl -u tomcat --since "2025-11-01" --until "2025-11-03" # 按时间范围过滤
journalctl -u tomcat -f # 实时跟踪
Windows系统下的查看方法
\,如C:\logs\app.log)。Get-Content -Path "C:\logs\app.log" -Tail 20(实时查看最后20行);Select-String -Path "C:\logs\app.log" -Pattern "ERROR"(过滤关键词)。logback.xml、log4j.properties)中的File参数,确认自定义路径是否正确。stdout/stderr),可通过docker logs <container_id>查看。