Ubuntu Java编译日志查看实用技巧
确定日志文件位置
Java编译日志通常位于项目工作目录(如target/或build/文件夹)或通过构建工具(Maven/Gradle)配置的路径(如Maven的log4j.properties或Gradle的logging.level设置)。常见文件名为compile.log、build.log或项目名称加.log后缀。
查看完整日志内容
-n参数可显示行号(便于定位):cat -n /path/to/compile.log空格/b)、跳转行(gg/G)及搜索(/关键词):less /path/to/compile.log-n 10显示前10行)或结尾(-n 10显示后10行)内容:head -n 10 /path/to/compile.logtail -n 10 /path/to/compile.log实时监控日志更新
使用tail -f命令实时显示日志文件的新增内容(按Ctrl+C退出),适合跟踪编译过程的实时输出:
tail -f /path/to/compile.log
搜索特定内容
ERROR、WARN或包名)的行,-i忽略大小写,-n显示行号:grep -i "error" /path/to/compile.loggrep -n "com.example.package" /path/to/compile.loggrep -E支持正则表达式,匹配多个关键词(如Exception或Error):grep -E "Exception|Error" /path/to/compile.log分段与格式化查看
Exception),保留块状结构(-v RS=设置记录分隔符为空行):awk -v RS= -v ORS='\n\n' '/Exception/' /path/to/compile.log | lessnetns),适合复杂日志分析:tail -n 10000 /path/to/compile.log | vim -/关键词搜索、:%s/pattern//g全局替换或:n/:N切换文件。查看Maven编译日志
Maven编译命令默认输出到终端,若需保存到文件,可添加-X(调试模式)和-Dmaven.build.cache.enabled=false(禁用缓存,避免日志截断):
mvn clean compile -X > maven_compile.log 2>&1
日志文件通常位于target/surefire-reports/(单元测试日志)或项目根目录的maven-build.log。
查看Gradle编译日志
Gradle编译命令使用--info(默认)、--debug(详细)或--stacktrace(堆栈跟踪)调整日志级别,输出到文件:
gradle build --info > gradle_compile.log 2>&1
日志文件通常位于build/reports/(如build/reports/logging/compile.log)。
过滤编译错误
编译错误通常包含error:、cannot find symbol或compilation failed等关键词,可通过以下命令快速定位:
grep -i "error\|cannot find symbol\|compilation failed" /path/to/compile.log
结合tail -f实时监控编译错误(适用于长时间编译任务):
tail -f /path/to/compile.log | grep -i "error"
高亮显示关键信息
使用highlight或ccze工具高亮关键词(如ERROR用红色显示),增强日志可读性:
highlight:sudo apt install highlightERROR:highlight -O ansi -k "ERROR" /path/to/compile.log | less -Rccze:sudo apt install cczeccze:cat /path/to/compile.log | ccze日志轮换与管理
使用logrotate工具自动轮换、压缩和删除旧日志(防止日志文件过大),配置文件位于/etc/logrotate.conf或/etc/logrotate.d/目录下。示例配置(每天轮换,保留7天):
/path/to/compile.log {
daily
rotate 7
compress
missingok
notifempty
}
手动触发轮换:sudo logrotate -f /etc/logrotate.d/java_compile。