Linux下WebLogic日志管理指南
WebLogic的日志文件按类型和服务器实例分布在域目录下,常见路径如下:
$DOMAIN_HOME/servers/<server_name>/logs/<server_name>.log(如/user_projects/domains/mydomain/servers/AdminServer/logs/AdminServer.log)。$DOMAIN_HOME/servers/<server_name>/logs/access.log。$DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log(部分版本为domain.log)。日志轮转可防止日志文件无限增长,常用方法有两种:
通过管理控制台或配置文件调整轮转策略:
环境 > 服务器 > <server_name> > 日志 > 常规。By Size)或“按时间”(By Time)。
旋转文件大小(如500MB),达到阈值后自动重命名当前日志(如server.log00001)。开始旋转时间(如00:00)和旋转间隔(如24小时),定时生成新日志。保留文件数(如7个),超过则覆盖最旧日志。文件名字段添加时间戳(如server_%yyyy%_%MM%_%dd%.log),便于归档。通过系统级工具实现更灵活的轮转(如压缩、远程传输):
/etc/logrotate.d/weblogic,内容示例如下:/path/to/weblogic/domain/logs/*.log {
daily # 每天轮转
rotate 7 # 保留7个旧日志
compress # 压缩旧日志(如.gz格式)
missingok # 日志不存在时不报错
notifempty # 日志为空时不轮转
create 640 root adm # 新日志权限和属主
sharedscripts # 所有日志处理完后执行脚本
postrotate
/bin/kill -HUP `cat /path/to/weblogic/domain/servers/AdminServer/tmp/AdminServer.pid` 2>/dev/null || true
endscript
}
sudo logrotate -vf /etc/logrotate.d/weblogic(-v显示详细过程,-f强制轮转)。tail -f /path/to/server.log(如tail -f /user_projects/domains/mydomain/servers/AdminServer/logs/AdminServer.log),实时跟踪最新日志。tail -n 100 /path/to/server.log(查看最后100行)。grep "ERROR" /path/to/server.log(查找包含“ERROR”的行)。若WebLogic通过systemd服务管理(如weblogic.service),可使用以下命令查看服务日志:
journalctl -u weblogic.server -f # 实时查看WebLogic服务日志
journalctl -u weblogic.server --since "2025-11-01" # 查看指定时间后的日志
rm -f /path/to/old_logs/*.log(删除指定目录下所有.log文件)。crontab -e
# 添加以下内容(每周日凌晨1点执行)
0 1 * * 0 find /path/to/weblogic/logs -name "*.log" -mtime +7 -exec rm -f {} \;
通过调整日志级别可控制日志输出的详细程度(从低到高:TRACE→DEBUG→INFO→NOTICE→WARNING→ERROR→SEVERE→CRITICAL→FATAL):
环境 > 服务器 > <server_name> > 日志 > 通用,修改日志级别下拉框(如设置为INFO,仅输出重要信息)。$DOMAIN_HOME/config/fmwconfig/servers/<server_name>/logging.xml文件,调整logging-file-handler的level属性(如<level>INFO</level>)。root或weblogic用户(如chown -R root:adm /path/to/weblogic/logs),避免权限不足导致日志无法写入。rsync -avz /path/to/weblogic/logs user@remote:/backup/logs),防止本地磁盘故障导致数据丢失。