WebLogic在Debian系统中的日志文件默认存储在域根目录($DOMAIN_HOME)下的servers/<ServerName>/logs路径中,常见日志类型及默认路径如下:
server.log):记录服务器启动、停止、运行错误及警告信息,路径为$DOMAIN_HOME/servers/AdminServer/logs/server.log(AdminServer为管理服务器名称)。access.log):记录客户端HTTP请求详情(如URL、响应状态、请求时间),路径为$DOMAIN_HOME/servers/AdminServer/logs/access.log。domain.log):记录域级别的事件(如部署、配置变更),路径为$DOMAIN_HOME/servers/AdminServer/logs/domain.log。diagnostic.log):包含详细诊断信息(如线程堆栈、内存使用),用于深度问题排查,路径同服务器日志目录。通过Linux命令行工具可快速筛选、统计日志内容,适用于日常监控与简单故障排查:
tail -f命令实时追踪日志文件的新增内容(如服务器日志),例如:tail -f /path/to/weblogic/logs/server.log
可添加-n 100参数限制显示行数(如tail -n 100 -f server.log)。grep命令筛选包含指定关键词(如ERROR、WARN、OutOfMemoryError)的日志行,例如:grep "ERROR" /path/to/weblogic/logs/server.log # 查找错误日志
grep "2025-10-01" /path/to/weblogic/logs/access.log # 查找指定日期的访问日志
结合-i参数可忽略大小写(如grep -i "error" server.log)。awk、grep组合统计特定时间段内的错误日志数量(如2025-10-01的ERROR日志),例如:awk '/ERROR/ && /2025-10-01/' /path/to/weblogic/logs/server.log | wc -l
该命令可快速识别某时段内的错误频率。ls -l命令查看日志文件的大小、修改时间,判断是否需要归档(如日志文件超过1GB时需清理),例如:ls -lh /path/to/weblogic/logs/server.log
为避免日志文件过大占用磁盘空间,需通过logrotate工具配置日志轮转策略:
/etc/logrotate.d/目录下新建weblogic配置文件,内容如下(以server.log为例):/path/to/weblogic/logs/server.log {
daily # 每日轮转
rotate 7 # 保留最近7个日志文件
compress # 压缩旧日志(如server.log.1.gz)
missingok # 若日志文件不存在则跳过
notifempty # 若日志为空则不轮转
copytruncate # 复制日志文件后清空原文件(避免重启服务)
}
保存后,logrotate会每日自动执行轮转(可通过logrotate -vf /etc/logrotate.d/weblogic手动测试)。对于海量日志或需要可视化、告警的场景,可使用专业日志分析工具:
logstash.conf文件:input {
file {
path => "/path/to/weblogic/logs/*.log"
start_position => "beginning"
sincedb_path => "/dev/null" # 首次运行时忽略sincedb文件
}
}
filter {
grok { match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{GREEDYDATA:logmessage}" } } # 解析日志格式
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "weblogic-logs-%{+YYYY.MM.dd}"
}
}
sudo apt install goaccess # Debian安装goaccess
goaccess /path/to/weblogic/logs/access.log -o /var/www/html/report.html --log-format=COMBINED
打开浏览器访问http://localhost/report.html即可查看报告。生产环境中,合理设置日志级别可减少无关日志量,提升分析效率:
http://<服务器IP>:7001/console)。Domain Structure > Environment > Servers > <ServerName> > Logging > General。Log Level设置为WARNING(记录潜在问题)或ERROR(仅记录严重错误),避免INFO、DEBUG级别的冗余日志。connect('weblogic', 'password', 't3://localhost:7001')
cd('/Servers/AdminServer/Logging/AdminServer')
cmo.setLogLevel('WARNING') # 设置日志级别为WARNING
save()
activate()
disconnect()
OutOfMemoryError(如java.lang.OutOfMemoryError: Java heap space),解决方法:
setDomainEnv.sh中增加-Xms2048m -Xmx4096m)。jmap、VisualVM分析内存泄漏(如查看堆内存中的对象占用情况)。java.sql.SQLException: Connection timed out或Cannot get connection from pool,解决方法:
Environment > Servers > <ServerName> > Services > Data Sources中增加Max Capacity)。ping <数据库IP>、telnet <数据库IP> 1521)。通过上述方法,可系统性地分析Debian系统中WebLogic的日志,快速定位问题、优化性能并满足安全审计需求。