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的日志,快速定位問題、優化性能并滿足安全審計需求。