WebLogic在CentOS中的日志文件默认存储在**域根目录(DOMAIN_HOME)**下的servers/SERVER_NAME/logs子目录中(DOMAIN_HOME通常为/home/weblogic/user_projects/domains/base_domain或自定义路径,SERVER_NAME为服务器实例名称,如AdminServer)。主要日志文件包括:
tail -f命令动态跟踪日志文件的最新内容(如服务器运行状态),例如:tail -f /home/weblogic/user_projects/domains/base_domain/servers/AdminServer/logs/server.log
grep命令筛选特定关键词(如“ERROR”“Failed”“Timeout”),快速定位异常,例如:grep "ERROR" /home/weblogic/user_projects/domains/base_domain/servers/AdminServer/logs/server.log
cat命令输出日志文件全部内容(适合小文件),例如:cat /home/weblogic/user_projects/domains/base_domain/servers/AdminServer/logs/server.log
journalctl查看系统级日志(适用于systemd系统),例如:journalctl -u weblogic --since "2025-09-18 00:00:00" --until "2025-09-18 23:59:59"
grep的-A(after,显示匹配行之后的N行)、-B(before,显示匹配行之前的N行)、-C(context,显示匹配行前后的N行)选项,缩小时间范围,例如:grep -A 50 -B 20 "2025-09-18 14:30:00" /home/weblogic/user_projects/domains/base_domain/servers/AdminServer/logs/server.log
grep -v排除特定关键词(如“DEBUG”),减少日志噪音,例如:grep -v "DEBUG" /home/weblogic/user_projects/domains/base_domain/servers/AdminServer/logs/server.log | grep "ERROR"
使用logrotate工具自动切割、压缩和删除旧日志,避免单个日志文件过大占用磁盘空间。示例配置(/etc/logrotate.d/weblogic):
/home/weblogic/user_projects/domains/base_domain/servers/*/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
上述配置表示:每天切割日志,保留最近7天的压缩日志(.gz格式),空日志不处理。
通过grep、awk、sed等工具组合,实现复杂日志分析(如统计错误次数、提取Top 10慢请求):
grep -c "ERROR" /home/weblogic/user_projects/domains/base_domain/servers/AdminServer/logs/server.log
grep "HTTP/1.1\" 500" /home/weblogic/user_projects/domains/base_domain/servers/AdminServer/logs/access.log | awk '{print $4, $7}'
server.log(服务器状态)、access.log(访问异常)、diagnostic.log(诊断信息)。grep筛选“ERROR”“Timeout”“OutOfMemoryError”等关键词,缩小分析范围。journalctl)、应用日志(如业务代码日志),推断异常原因(如内存泄漏、数据库连接超时、恶意攻击)。通过修改logging.xml文件(位于WL_HOME/server/lib目录),调整日志输出级别、路径和格式:
<log-level>设置为FINE(详细)或WARNING(警告),例如:<log-level>WARNING</log-level>
<domain-log-file>标签的name属性,例如:<domain-log-file name="/home/weblogic/logs/custom_domain.log"/>
<message-format>标签设置日志输出格式(如添加线程ID、事务ID),便于后续分析。