WebLogic日志默认存储在DOMAIN_HOME/servers/SERVER_NAME/logs目录下(DOMAIN_HOME为域根目录,SERVER_NAME为服务器实例名称),主要日志文件包括:
tail -f命令跟踪日志文件的最新内容(如tail -f /path/to/domain/logs/AdminServer.log),适合监控实时运行状态;cat命令输出日志全部内容(如cat /path/to/domain/logs/AdminServer.log),适合快速浏览小文件;less命令分页查看大日志文件(如less /path/to/domain/logs/AdminServer.log),支持上下翻页和关键词搜索;grep命令筛选特定关键词(如grep "ERROR" /path/to/domain/logs/AdminServer.log),快速定位错误信息。grep和wc -l统计错误日志行数(如grep "ERROR" /path/to/domain/logs/AdminServer.log | wc -l),快速评估错误严重程度;awk提取错误堆栈的关键部分(如grep "java.lang.OutOfMemoryError" /path/to/domain/logs/AdminServer.log | awk -F'at' '{print $1}'),聚焦异常根源;grep -A(显示匹配行及后续N行)或grep -B(显示匹配行及前序N行)关联相关日志(如grep -A 5 "BEA-000386" /path/to/domain/logs/AdminServer.log)。通过Shell脚本自动化完成日志分析任务,例如统计每日错误数量:
#!/bin/bash
LOG_FILE="/path/to/domain/logs/AdminServer.log"
ERROR_COUNT=$(grep "ERROR" "$LOG_FILE" | wc -l)
echo "2025-10-07 WebLogic错误数量: $ERROR_COUNT" >> /path/to/error_report.log
或使用Python脚本调用WLST接口提取日志(需提前配置WLST环境):
# 连接到WebLogic服务器
connect('weblogic', 'password', 't3://localhost:7001')
# 获取服务器日志内容
serverName = 'AdminServer'
logContent = cmo.getLogMessages()
# 写入本地文件
with open('/path/to/output.log', 'w') as f:
for message in logContent:
f.write(str(message) + '\n')
# 断开连接
disconnect()
java.lang.OutOfMemoryError: PermGen space或java.lang.OutOfMemoryError: Java heap space,解决方法:调整JVM内存参数(如-Xms2048m -Xmx4096m -XX:PermSize=512m),并使用VisualVM分析内存泄漏;java.sql.SQLException: Connection timed out或weblogic.common.ResourceException: Could not create pool connection,解决方法:增加连接池最大连接数(如Initial Capacity设为20,Max Capacity设为50),检查数据库服务状态和网络连接;java.net.BindException: Address already in use,解决方法:使用netstat -an | grep <端口号>查找占用进程,终止冲突进程或修改config.xml中的端口配置。通过以上方法,可系统性地分析CentOS环境下WebLogic的日志,快速定位并解决运行中的问题,提升运维效率。