Java应用的日志路径通常由开发者配置,常见位置包括:
logs子目录(如/opt/myapp/logs/myapp.log、/opt/tomcat/logs/catalina.out);/var/log/java/或/var/log/[应用名]/)。# 查找所有含".log"的文件(忽略权限错误),并筛选含"java"关键词的日志
find / -name "*.log" 2>/dev/null | grep -i java
或通过Java进程信息推断(如Tomcat的catalina.out通常在/var/log/tomcat/)。
cat命令输出日志文件全部内容(适合小文件):cat /path/to/java.log
tail -f命令跟踪日志文件的实时更新(适合排查实时问题):tail -f /opt/myapp/logs/myapp.log
grep命令筛选特定日志(如ERROR级别错误):grep "ERROR" /opt/myapp/logs/myapp.log # 筛选含"ERROR"的行
grep -A 5 -B 5 "Exception" /opt/myapp/logs/myapp.log # 显示匹配行及前后5行上下文
less命令分页浏览大日志文件(按空格翻页,q退出):less /var/log/tomcat/catalina.out
若Java应用作为systemd服务运行(如通过systemctl start java-app启动),可通过journalctl查看其日志:
journalctl -u java-service-name # 替换为实际服务名(如tomcat、java-app)
journalctl --since "1 hour ago" -u java-service-name
grep过滤系统日志中的Java关键词:journalctl | grep java # 查看所有含"java"的系统日志
logrotate工具自动压缩、备份旧日志,避免单个文件过大。配置文件通常位于/etc/logrotate.d/,示例如下:# 创建或编辑Java日志轮转配置(如/opt/myapp/logs/*.log)
sudo vi /etc/logrotate.d/java
添加以下内容(每日轮转、保留7份、压缩旧日志):/opt/myapp/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0644 root root
}
手动测试配置(不修改原文件):logrotate -d /etc/logrotate.d/java
重新加载配置(使修改生效):sudo systemctl reload logrotate
若需获取更详细的日志(如DEBUG级别),可修改Java应用的日志配置文件(如Log4j的log4j.properties、Logback的logback.xml),调整日志级别后重启应用使配置生效。示例如下:
logback.xml):<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n</pattern>
</encoder>
</appender>
<root level="DEBUG"> <!-- 修改为DEBUG级别 -->
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
log4j.properties):log4j.rootLogger=DEBUG, console # 修改为DEBUG级别
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
通过以上方法,可有效查看、分析和管理CentOS系统上的Java日志,快速定位问题。